Premiere编辑时没有声音

编辑视频时没有声音的原因有很多种,我这里会到情况是由于启动Pr时提示过错误消息框:

1
2
3
无法应用设备设置,因为发生了以下错误:
 
MME 设备内部错误。

解决方法:
点击菜单->编辑->首选项->音频硬件,弹出对话框中,默认输入选择“无输入”,点“确定”保存,退出Pr再重启。

我这样操作后,再编辑视频时就有声音响应了。

Android Studio调试时apk中的lib文件夹不见了

现象:
Build -> Make Project生成的apk包中含lib文件夹及里面的.so动态库,而点击IDE中的Debug按钮后发现生成的apk包中lib文件夹及.so库都没了。

解决方法:
在右上角“Make Project(Ctrl + F9)”图标的右边下拉框中点击“Edit Configurations...”,在“Run/Debug Configurations”对话框中,选择app -> General -> Installation Options -> Deploy下拉框的“APK from app bundle”,并点击OK保存。这样点击IDE中的Debug按钮后,传到设备中进行交互调试的apk中也会包含进lib内容。

禁止RestartByRestartManager

有时候很烦人,程序跑着跑着就重启了,这并不是因为程序崩了,而是在新版的visual studio中对MFC程序默认增加了一个功能:程序自动重启。要禁用它,只须在程序最开始继承自CWinApp的类的构造函数中将下面一句话注释掉:

1
2
	// support Restart Manager
	//m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;

need to install the Win32::Console module

ActivePerl-5.26.3.XXXX.msi安装后,命令行执行cpan,会出现如下提示而无法继续。

Can't locate Win32/Console.pm in @INC (need to install the Win32::Console module) (@INC contains: C:\Perl64\site\lib C:\Perl64\lib) at C:\Perl64\lib/ActivePerl/Config.pm line 400.

解决办法,修改C:\Perl64\lib\ActivePerl\Config.pm,大约在400行左右:

392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
# Prevent calling Win32::Console::DESTROY on a STDOUT handle
#my $console;
sub _warn {
#    my($msg) = @_;
#    unless (-t STDOUT) {
#	print "\n$msg\n";
#	return;
#    }
#    require Win32::Console;
#    unless ($console) {
#	$console = Win32::Console->new(Win32::Console::STD_OUTPUT_HANDLE());
#    }
#    my($col,undef) = $console->Size;
#    print "\n";
#    my $attr = $console->Attr;
#    $console->Attr($Win32::Console::FG_RED | $Win32::Console::BG_WHITE);
#    for (split(/\n/, "$msg")) {
#	$_ .= " " while length() < $col-1;
#	print "$_\n";
#    }
#    $console->Attr($attr);
#    print "\n";
}

qt5.6编译后运行designer

直接双击运行bin/designer.exe会报如下错误:

This application failed to start because it could not find or load the Qt platform plugin "windows" in ...

解决办法是,在bin目录中新建qt.conf文件,其内容如下:

1
2
[Paths]
Prefix=d:/qt5.6.1.x64/

其中d:/qt5.6.1.x64/是根目录,该目录直接下面是bin目录及plugins目录。同时要注意这里的路径字符串中是Linux下的斜杠,不是Windows的反斜杠。

美化输出xml或json

xml

1
2
3
from xml.dom.minidom import *
with open('d:/xml.txt', 'r') as f:
    print(parseString(f.read()).toprettyxml())

json

1
python -m json.tool d:\json.txt

下载文件

1
2
3
4
import requests
resp = requests.get('http://file.url', headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'})
with open("aa.dat", "wb") as f:
    f.write(resp.content)

android cmake命令行

ninja这个工具是google的cmake特有的一个工具,不能用CMake官网下载安装的cmake编译安卓程序。

1
2
3
4
5
6
7
8
9
10
set SDK_PATH=E:\euhat\android-sdk
set path=%SDK_PATH%\cmake\3.10.2.4988404\bin;%path%
 
cd app
mkdir manBuild
cd manBuild
 
cmake -DANDROID_ABI=armeabi-v7a -DANDROID_STL=c++_shared -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS="-s" -DANDROID_PLATFORM=android-27 -DCMAKE_BUILD_TYPE=Debug -DANDROID_NDK=%SDK_PATH%\ndk-bundle -DCMAKE_TOOLCHAIN_FILE=%SDK_PATH%\ndk-bundle\build\cmake\android.toolchain.cmake -DCMAKE_GENERATOR=Ninja ..
 
ninja

refer to: https://bbs.csdn.net/topics/392257691?list=lz

视频在微信手机端看不了

比如用ffmpeg在电脑端录的mp4视频,拖到微信电脑端是可以看的,但打开微信手机端就不动了,只能看到第一帧。

解决办法是先将mp4格式转为mpg格式,再将mpg格式转为mp4格式,最后得到的mp4就可在微信手机端播放了:

1
2
ffmpeg.exe -i old.mp4 temp.mpg
ffmpeg.exe -i temp.mpg new.mp4

附ffmpeg在windows下录屏方法:

1
ffmpeg -f gdigrab -framerate 30 -offset_x 655 -offset_y 517 -video_size 511x374 -i desktop capture.mpg

ffmpeg在ubuntu下录屏方法:

1
ffmpeg -framerate 25 -f x11grab -s 800x600 -i :0.0+100,200 capture.mp4

转码为mp4的方法:

1
2
3
ffmpeg.exe -ss 5 -sseof 5 -i %1 -vf scale=-2:600 -y output.mp4
 
rem ffmpeg.exe -ss 5 -sseof 5 -i %1 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" output.mp4

refer to:
https://github.com/GyanD/codexffmpeg/releases/tag/2021-12-02-git-4a6aece703
https://www.xzcblog.com/post-173.html

用curl发送json请求

以下是json.bat的内容:

1
2
3
4
set /P json=<%1
set result=%json:"=\"%
curl -H "Content-Type:application/json" -X POST -d %result% http://you.url
pause

然后把只含json内容的文件拖到json.bat上面运行就可以了。

注意1,我测试时下载的curl命令行工具是不支持json串中包含空格的,这里只作测试用途,空格先都去掉。
注意2,json.bat第2行包含了Windows批处理脚本中,往字符串里插入字符的方法,此处是把json字符串中每一个双引号前插入一个反斜杠。