一、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模式就不需要指定编码器了
