一、ffmpeg音视频处理基本流程
首先先看两条命令
ffmpeg -i 1.mp4 -acodec copy -vcodec libx264 -s 1280x720 2.flv
ffmpeg -i 1.mp4 -acodec copy -vcodec libx265 -s 1280x720 3.mkv
- -i :表示输入源,这里是1.mp4,是当前路径下的视频文件
- -acodec copy: 用于指定音频编码方式。copy 表示直接复制输入文件的音频流,不进行重新编码。这样可以节省处理时间,同时保留原始音频的质量和编码格式。
- -vcodec libx264/libx265:-vcodec 用于指定视频编码方式,这里使用libx264/libx265编码器进行H264/H265编码
- -s 1280x720:指定视频的分辨率,这里使用1280 x 720的分辨率
- .flv/.mkv:指定输出文件的容器(文件)格式,flv和mkv都是常见的音视频容器
生成后的文件:
使用ffprobe查看转换后的视频参数:
ffprobe 2.flv
这里的编码是H.264+AAC 分辨率是1200x720:
ffprobe 3.mkv
这里的hevc就是H265,音频使用AAC,分辨率是1280x720
我们来看看具体的命令执行流程是怎么样的:
- 输入文件 : 例如这里的1.mp4
- 编码数据包:例如这里的视频编码libx264
- 解码后的数据帧:解码后得到相应的数据帧,进行后续处理
- 处理数据帧:比如这里的分辨率转换1280x720,通常使用的是filter来处理
- 编码数据包:把处理后的数据帧重新编码,例如libx265和libx265
- 输出文件:比如这里的2.flv和3.mkv
如果采用copy模式就不需要指定编码器了