在Linux平台上没有好用的视频转码软件,其实在日常工作中所使用的转码方案并不多,我总结了Linux和Mac OS下使用FFmpeg转码的常用模板,希望对大家有所帮助
如何安装FFmpeg,请查看底部相关文章
转码为YouTube、大多数手机、Pad等移动端可直接播放的MP4文件
ffmpeg -i *.mov -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:v 20000k -b:a 384k -r:a 48000 -movflags faststart *.mp4
解释:
-i 表示input文件 后面空格后加上要转码的源文件,常用的视频文件均可支持,可以是mov mp4 m4v avi mkv ts ogg 等格式,基本上只要播放器可以播放,都可以支持,目前BMD摄像机的braw格式CentOS7 上可用的FFmpeg尚不支持,braw文件请使用达芬奇转码;
-b:v 20000k 表示视频编码码流,这里设置了20m码流,可以根据自己的需要修改合适的码流;
其他参数如有兴趣可自行百度相关解释
注意事项:
a.请将第一个红色部分引号内的内容替换成需,转码的文件路径(包含完整文件名),可以是绝对路径,也可以是相对路径,为确保路径中可能会包含的空格等特殊符号对路径识别产生干扰,请保留引号,单引号双引号都可以;
b.请将第二个红色部分内容替换成转码目标文件的路径(包含完整文件名),可以是绝对路径,也可以是相对路径,为确保路径中可能会包含的空格等特殊符号对路径识别产生干扰,请保留引号,单引号双引号都可以;
提取音频
ffmpeg -i *.mov -vn -y -acodec copy *.aac
ffmpeg -i *.mov -vn -y -acodec copy *.m4a
aac全名是Advanced Audio Coding,后缀名一般为m4a、aac、mp4、mkv等,其中mp4、mkv为视频格式,采样率一般为44.1khz,码率一般是64kbps到192kbps,声道一般为双声道立体声。
ac3全称是(Dolby)Audio Codec 3,一般出现在DVD视频格式中,后缀名为vob,采样率一般为48khz,码率一般是192kbps到384kbps,声道为双声道或6声道。
提取视频
ffmpeg -i *.mov -vcodec copy -an *.mp4
合并音频和视频
使用Chrome插件从YouTube等网站上下载回来的高清视频往往是视频和音频分离的,这个时候需要快速将其合并为单独的视音频文件,可采用以下代码迅速合并
ffmpeg -i '*.webm' -i audio.wav -c:v copy -c:a copy -strict experimental '*.mp4'
解释:
-i 表示input文件 后面空格后加上要转码的源文件,常用的视频文件均可支持,目前YouTube上下载回来的高清(720p以上)视频均为webm格式;
-c:v copy -c:a copy 表示对视频和音频文件直接进行拷贝,而不转码,这样整个转码过程其实就是将两个文件合并为一个文件的拷贝过程,不会有任何质量上的改变;
其他参数如有兴趣可自行百度相关解释
注意事项:
a.请将第一个红色部分引号内的内容替换成需,转码的文件路径(包含完整文件名),可以是绝对路径,也可以是相对路径,为确保路径中可能会包含的空格等特殊符号对路径识别产生干扰,请保留引号,单引号双引号都可以;
b.请将第二个红色部分内容替换成转码目标文件的路径(包含完整文件名),可以是绝对路径,也可以是相对路径,为确保路径中可能会包含的空格等特殊符号对路径识别产生干扰,请保留引号,单引号双引号都可以;
拼合m3u8格式ts视频序列
ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp,https" -i ./*.m3u8 -c copy ./merage.mp4
请自行替换红色部分为自己的路径
将视频转码为视频编辑时的常用格式ProRes
ffmpeg -i *.mov -c:v prores_ks -profile:v 3 -vendor ap10 -pix_fmt yuv422p10le *.mov
解释:
请自行将 *.mov 内容替换成自己的路径和名称,第一个是被转码文件,第二个是转码后的文件
-c:v prores_ks -profile:v 3 - 表示转码为Prores格式,并使用转码模板 3,Prores共有4个模板供转码时使用,代码是数字 0 1 2 3,分别代表Prores的4中质量标准Proxy LQ SQ HQ;
Prores_ks - 这里表示选择ffmpeg支持的Prores编码方式中的ks这种方式,在FFmpeg中编码Prores格式共有Prores Prores_ks和Prores_aw,测试之后Prores_ks编码质量最好,所以这里推荐大家选用此格式
其它常用参数汇总
-s 1280x720 //设定分辨率为1280x720