如何使用x265
通过FFmpeg调用x265进行视频编码操作。
- 添加依赖库环境变量。
export LD_LIBRARY_PATH=/home/ffmpeg/install/lib:/home/x265/install/lib export PKG_CONFIG_PATH=/home/x265/install/lib/pkgconfig/
- 将MP4格式片源转化为YUV格式。
/home/ffmpeg/install/bin/ffmpeg -i input.mp4 output.yuv
- 开始执行编码程序。相关参数的解释说明如表1所示。
/home/ffmpeg/install/bin/ffmpeg -s 1920x1080 -framerate 60 -i output.yuv -preset medium -c:v libx265 -x265-params "bitrate=2000:vbv-maxrate=2000:vbv-bufsize=2000:numa-pools='2,-,-,-'" -f null /dev/null > "log.txt" 2>&1
表1 编码程序参数解释说明 参数
说明
/home/ffmpeg/install/bin/ffmpeg
指定FFmpeg可执行文件的路径。可自定义。
-s 1920x1080
设置输出视频的分辨率为1920x1080。
-framerate 60
设置输出视频的帧率为60帧每秒。
-i input.yuv
指定输入文件的路径和文件名。
-preset medium
设置视频编码的预设选项为medium,该参数设置会影响编码速度和压缩效率。
-c:v libx265
指定使用libx265编码器进行视频编码。
-x265-params "bitrate=2000:vbv-maxrate=2000:vbv-bufsize=2000:numa-pools='2,-,-,-'"
设置x265编码器的参数,包括码率、最大码率、缓冲区大小和NUMA内存池等。numa-pools后的参数含义依次为:
- 输入帧使用NUMA节点2。
- 输出帧使用默认的NUMA节点(-表示默认)。
- 其他计算任务使用默认的NUMA节点(-表示默认)。
通过指定这些参数,libx265可以更好地利用NUMA架构系统的资源,以获得更好的性能。
如果您的系统不是NUMA架构,或者不太了解NUMA相关的知识,您可以简单地将numa-pools参数设置为默认值,即不指定该参数,例如numa-pools='-, -,-,-',或者直接不加这个参数。
-f null /dev/null
指定输出格式为null,同时将输出重定向到“/dev/null”,这实际上是将输出丢弃,因为在命令行中“/dev/null”表示空设备,不会保存任何输出结果。-f mp4 output.mp4则是输出mp4格式文件。
> "log.txt"
将标准输出重定向到文件“log.txt”。
2>&1
将标准错误输出重定向到与标准输出相同的地方,也就是重定向到“log.txt”文件。