FFmpeg 系列文章目录
【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境
【FFmpeg】FFmpeg 相关术语简介
【FFmpeg】FFmpeg 相关术语简介 二
【FFmpeg】FFmpeg 帮助文档使用
【FFmpeg】使用 FFmpeg 处理音视频格式转换流程
文章目录
- FFmpeg 系列文章目录
- 一、视频格式转换
-
- 1、x264 视频格式转换
- 2、x265 视频格式转换
- 二、视频格式转换流程
一、视频格式转换
1、x264 视频格式转换
使用 x264 压缩格式 , 将原始 大小 1920x1040 大小的 mp4 格式的视频转为 960x520 的 flv 格式的视频 ;
进入视频所在目录 , 执行如下命令 :
ffmpeg -i 1920x1040.mp4 -acodec copy -vcodec libx264 -s 960x520 960x520.flv
命令执行过程 :
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SM2MDN5Q2N5ITZ0QGNzQGZxYzXyEjM0UTMxEzLcFDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
转换前的视频信息 :
转换后的视频信息 :
2、x265 视频格式转换
使用 x265 压缩格式 , 将原始 大小 1920x1040 大小的 mp4 格式的视频转为 960x520 的 mkv 格式的视频 ;
进入视频所在目录 , 执行如下命令 :
ffmpeg -i 1920x1040.mp4 -acodec copy -vcodec libx265 -s 960x520 960x520.mkv
命令执行结果 :
转换前的视频信息 :
转换后的视频信息 :
二、视频格式转换流程
分析如下命令的详细流程 :
ffmpeg -i 1920x1040.mp4 -acodec copy -vcodec libx264 -s 960x520 960x520.flv
将 1920x1040 大小的 mp4 格式的视频文件 , 使用 x264 编解码器 , 转为 960x520 大小的 flv 格式的视频文件 ;
蓝色的是 文件 / 中间产物 , 红色的是过程 ;
输入文件 : 输入 1920x1040 大小的 mp4 格式文件 , 1920x1040.mp4 ;
解复用 : 使用 demuxer 解复用器 , 将输入文件进行解复用操作 , 从容器中分别将 AVC 视频流 , AAC LC 音频流取出 , 得到编码数据包 ;
编码数据包 : 该数据包中的音视频数据都是编码后的数据 , 不能直接使用 ; 编码数据包中的视频流数据是 AVC 编码格式的 , 音频流数据是 AAC LC 编码格式的 ;
解码 : 使用 decoder 解码器 , 解码 AVC 编码的视频流数据 , AAC LC 编码的音频流数据 , 得到解码后的数据 ;
解码后的数据帧 : 音频数据是 PCM 采样 , 视频帧 数据是一张张 YUV 格式的图片 ;
帧处理 : 使用 filter 过滤器 处理 解码后的数据帧 , 将其转为 处理后的数据帧 ; 该过程中将视频的分辨率进行了修改 , 分辨率从 1920x1040 转为 960x520 ;
如果要修改视频的相关参数 , 如 时间 , 帧率 , 都在该步骤进行操作 , 操作的主体一定是解码后的数据帧 ;
处理后的数据帧 : 该数据帧是可以直接用于播放 ; 音频数据是 PCM 采样 , 视频帧 数据是一张张 YUV 格式的图片 ;
编码 : 使用 encoder 编码器 , 将处理后的数据帧进行编码 , 音频从 PCM 采样转为 AAC LC 编码格式 , 视频从 YUV 图片编码为 AVC 编码格式 ,