利用命令行通过libx264编码YUV序列
来源:互联网 发布:淘宝宾卡达手表怎么样 编辑:程序博客网 时间:2024/05/22 14:06
先给出在命令行需要输入的命令:
ffmpeg -s cif -i E:\foreman_cif\foreman_cif.yuv -vcodec libx264 -level 40 -profile baseline -me_method epzs -qp 23 -i_qfactor 1.0 -g 12 -refs 1 -frames 50 -r 25 output.264
参数说明:
-s 指定YUV序列的分辨率,此处为cif(352*288)。
-i 指定输入的YUV的绝对路径。
-vcodec 指定编码器。
-profile 指定编码器使用的profile,可以是baseline,main等。此处设置为baseline,所以编码后的视频只包含I帧和P帧。
-level 指定编码器使用的level,这是设置为40对应level 4.0。
-me_method epzs 指定运动估计使用的搜索算法为EPZS(默认)。其他支持的搜索算法可以通过下面命令查找。
ffmpeg -h full | find /i "motion estimation"
-qp 设定恒定QP编码中,QP的值,范围是(from -1 to INT_MAX)。注意,这里的qp指定的是P帧的QP,而I帧和B帧的QP会进一步通过-i_qfactor 和-b_qfactor 推算。此外,在H264标准中是没有帧的概念的,但是在部分编码过程中将一整帧作为一个Slice不使用Slice group,则可以等同的理解为一帧。
-i_qfactor 为了使视频的所有帧(I帧和P帧)
-g 设置GOP大小。通过JM解码可以看到I帧实际上是IDR帧,具体为什么默认插入IDR帧以及如何取消IDR帧还不了解。
-refs 指定参考帧的数目,H.264支持多帧参考,其默认值为1。
-frames 指定需要编码的帧数。
-r 指定编码帧率。
小技巧:
当ffmpeg配置好libx264之后,可以通过 ffmpeg -h full 查询所有的帮助信息,然而想要在全部的帮助中找到想要的信息无意大海捞针。
在Ubuntu系统下,可以通过grep命令查找所需变量名称。 在Windows下面同样可以通过find命令完成,使用方法如下
ffmpeg -h full | find /i "-qp"
其中-i 选项是忽略大小写。
- 利用命令行通过libx264编码YUV序列
- ffmpeg命令行工具利用libx264和libx265编码YUV文件
- 最简单的视频编码器:基于libx264(编码YUV为H.264)
- 最简单的视频编码器:基于libx264(编码YUV为H.264)
- 【FFmpeg学习笔记005】 libx264和FFmpeg不同方式(YUV编码为H.264)
- obs之libx264编码
- 毕设系列之Libx264实时视频流(YUV 420P转H264视频编码篇)
- iOS 使用libx264编码视频
- iOS 使用libx264编码视频
- libx264编码部分参数说明
- 调用ffmpeg SDK对YUV视频序列进行编码
- linux 利用 lynx 通过命令行上网
- ffmpeg调用libx264编码高级选项
- libx264进行视频编码的流程
- 利用数据库序列生成不重复编码
- window下通过msys2编译libx264.lib
- 利用X264编码yuv格式视频帧,利用ffmpeg解码h264视频帧
- YUV 测试序列收集
- iOS9适配系列教程
- js快速排序
- exchenge 反复提示重启
- Linux内核源码(asm/atomic.h)学习
- unicode与ansi字符详解
- 利用命令行通过libx264编码YUV序列
- git常用命令详解
- C语言编译和链接和加载
- 编码格式错误 warning C4819
- 好玩】续航时间提升四倍? 颂拓拓野3 Peak评测
- 使用 OpenCV 做一个简单方便的抠图工具
- FIFA 16 on Wii U this year. whereas the sport arrives
- Unity MVC:如何提升游戏开发质量
- ArcGIS教程:“采样”的工作原理