这是我对“ original.mp4”所做的操作(持续时间00:15:22,文件大小约为80MB):
从mp4提取视频流
ffmpeg -i original.mp4 -c copy -an vid_only.mp4
从mp4提取音频流
ffmpeg -i original.mp4 -vn -acodec copy aud_only.aac
合并提取的音频和视频流以形成新的mp4
ffmpeg -i aud_only.aac -i vid_only.mp4 new_mix.mp4
并发现准确地混合了“ new_mix.mp4”,持续时间与以前相同,但是文件大小已从36MB减少到了36MB(从〜80MB)。使用ffprobe
两个“original.mp4”和“new_mix.mp4”,我发现,不同的是在音频和视频流的比特率。
步骤#1和#2提取了音频和视频流,而没有任何重新编码。步骤3应该是合并了音频和视频流,但是花费了很长时间,因此很可能执行了重新编码。那正确吗 ?如果是这样,是否有办法告诉ffmpeg在合并时不要重新编码,以便更快地执行并保留原始比特率?
-c copy
告诉ffmpeg对所有正在处理的流进行流复制。那不见了。
ffmpeg -i aud_only.aac -i vid_only.mp4 -c copy new_mix.mp4
另外,对于第2步,最好将其提取到M4A之类的容器中
ffmpeg -i original.mp4 -vn -acodec copy aud_only.m4a
如果您的音频有时间戳间隔,.aac
将丢失它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句