
兼容处理android10的不能 *** 作二进制文件流问题;
1、添加字幕
主要命令:-i videoPath.mp4 -q 5 -vf ass=subtitle.ass -y outPath.mp4
其中-q 5命令是为了生成的视频不会很模糊
2、添加字幕和配音
ffmpeg在特定的时间混合一个或多个音频,参考文章
如何在指定的时间点向视频插入配音文件即音频文件,参考文章
主要命令:ffmpeg -y -i video1.mp4 -i audio1.mp3 -i audio2.mp3 -filter_complex "[1]atrim=0:5,adelay=3000|3000[aud1][2]atrim=0:6,adelay=10000|10000[aud2][aud1][aud2]amix=2,apad,atrim=0:20[a]" -map 0:v -map "[a]" -c:v copy -ac 2 output.mp4
最近有一个需求,需要将多个音频文件延时插入到一段视频中,经过学习,得到以下命令:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex [1]adelay=5000|5000=[s1][2]adelay=15000|15000=[s2][3]adelay=25000|25000=[s3][0:a][s1][s2][s3]amix=4[a] -map 0:v -map [a] -c:v copy result.mp4
如果不需要视频原声,则修改命令为:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex [1]adelay=5000|5000=[s1][2]adelay=15000|15000=[s2][3]adelay=25000|25000=[s3][s1][s2][s3]amix=3[a] -map 0:v -map [a] -c:v copy result.mp4
以上命令为Android使用,如果需要在windows使用,则需要修改为:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex "[1]adelay=5000|5000=[s1][2]adelay=15000|15000=[s2][3]adelay=25000|25000=[s3][s1][s2][s3]amix=3[a]" -map 0:v -map "[a]" -c:v copy result.mp4
其中
[1]adelay=5000|5000=[s1]的意思为:取第二个输入文件的音轨(下标从0开始)并延时5000毫秒
[0:a]的意思为:第一个输入文件的音频资源
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)