本文为媒矿工厂编译的技术文章
原标题:Six FFmpeg Commands You Can’t Live Without
作者:Jan Ozer
翻译整理:甘文耀
引言
FFmpeg是领先的多媒体框架,本帖将展示六个常用的FFmpeg命令。FFmpeg的官网下载地址为:https://ffmpeg.org/download.html。
1、基础命令
ffmpeg -i input.mp4 output.mp4
命令解释:
如果你没有指定音频或者视频的编码译码器,那么FFmpeg会根据容器格式使用默认的编码译码器及其参数。例如,输入一个1080p,容器格式为MP4的文件,FFmpeg会使用H.264视频编码译码器(码率为9~10 Mbps),AAC音频编码译码器(码率约为130Kbps),250帧的关键帧间隔,High profile版本,present参数选择为medium的x264。
2、不重新编码就能转换容器格式
可能你正在使用的某个应用只支持MOV容器格式,而你的源文件的容器格式为MP4。你可以使用Adobe Premiere Pro完成上述格式转换,但是Premiere Pro在转换时一定会重新编码,因此很耗时。而使用下面这条FFmpeg命令可以改变容器格式却不需要重新编码:
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mov
命令解释(上述已解释过的命令就不再重述,下同):
3、转换.ts文件的容器格式
对于.ts扩展名的MPEG-2容器格式的文件,你需要增加一项命令在传输流文件中处理MPEG-2/4 ADTS头:
ffmpeg -i input.ts -bsf:a aac_adtstoasc -c:v copy -c:a copy outputfromts.mp4
命令解释:
4、不重新编码就能裁剪视频
你可能需要裁剪视频中的部分内容,使用Adobe Premiere Pro来裁剪视频需要渲染以及编码,因此很耗时。而使用下面这条FFmpeg命令可以快速裁剪视频:
ffmpeg -ss 00:00:05 -i input.mp4 -t 00:00:03 -c:v copy -c:a copy excerpt.mp4
命令解释:
当编码译码器设为copy时,FFmpeg会根据关键帧进行查找,因此设置的时间不会完全精准,在多数应用场景下这不会有问题,但是如果你需要精准的时间设置,你可能需要其他视频编辑器。
5、转换为原始格式
一些工具只支持原始格式(如YUV或者Y4M),或者当使用新的编码译码器如AV1,而多数工具不支持直接输入AV1编码的文件,因此你需要将你的文件转换为原始格式:
ffmpeg -i input.mp4 -pix_fmt yuv420p -vsync 1 output.y4m
命令解释:
6、转换格式并调整视频分辨率
将文件转换为YUV/Y4M的同时,如果需要调整视频分辨率,可以使用这条命令:
ffmpeg -i input.mp4 -s 1920x1080 -sws_flags lanczos -pix_fmt yuv420p -vsync 1 output.y4m
命令解释:
总结
以上就是常用的六条FFmpeg命令,如果你经常测试视频编码和质量指标,你会发现命令行和FFmpeg非常重要,两者的组合简化并加速了测试和分析工作的流程。