鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

FFmpeg下HW265Enc使用参考

以YUV文件转换为MP4文件为例,提供在FFmpeg下使用HW265Enc编码器编码的命令使用示例。

在输入命令行选项时,除了输出文件名写在末尾,其他FFmpeg内置参数写在“ffmpeg”命令后面。libhw265编码器参数写在“libhw265”后面。参数的分类和说明如表1所示。

命令举例:

ffmpeg -s 1920x1080 -i input.yuv -bf 0 -c:v libhw265 -wpp_threads 4 output.mp4

显示信息如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Input #0, rawvideo, from 'input.yuv':
  Duration: 00:01:00.00, start: 0.000000, bitrate: 622080 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 622080 kb/s, 25 tbr, 25 tbn, 25 tbc
File 'output.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (libhw265))
Press [q] to stop, [?] for help
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: hevc (libhw265) (hev1 / 0x31766568), yuv420p, 1920x1080, q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.54.100 libhw265
frame= 1500 fps= 13 q=-0.0 Lsize=   34439kB time=00:00:58.96 bitrate=4785.1kbits/s speed=0.504x    
video:34432kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.020906%
表1 FFmpeg可执行选项配置说明

FFmpeg命令行参数

参数分类

参数说明

-i

FFmpeg内置参数

设置输入文件的名称。

对应libhw265编码器命令行参数:-i。

-s

FFmpeg内置参数

设置输入图像宽度和高度。

对应libhw265编码器命令行参数:-w,-h。

-vframes

FFmpeg内置参数

设置需要进行编码的帧数。

对应libhw265编码器命令行参数:--frames。

-fps_num

libhw265编码器参数

设置输出视频的编码帧率,取值范围为(0, 120],如果不是此范围内,设为默认值25。

对应libhw265编码器命令行参数:--fps_num。此时默认编码器命令行参数fps_den为1。

-channel

libhw265编码器参数

设置当前编码器的ID,通过编码器的ID值,来识别不同编码器,默认值为0。

-log_level

libhw265编码器参数

设置编码器日志输出等级,默认值为1。

0:关闭日志。

1:打开error级别,只上报错误信息。

2:打开warning级别,上报告警消息和小于warning级别的信息。

3:打开info级别,上报重要消息和小于info级别的信息。

4:打开debug级别,上报调试消息和小于debug级别的信息。

-frame_threads

libhw265编码器参数

设置帧级编码的线程数,一般值越大,编码速率越高。取值范围为[1, 38],默认值为12。

对应libhw265编码器命令行参数:--FrmThreadNum。

-wpp_threads

libhw265编码器参数

设置wpp行级编码的线程数,一般值越大,编码速率越高。取值范围为[1, 20],默认值为8。

对应libhw265编码器命令行参数:--WppThreadNum。

-analysis_threads

libhw265编码器参数

设置预分析线程个数,预分析提前扫描即将到来的帧,能一定程度上提高编码画质,但增加编码延时。取值范围[1, 48],默认值为5。

对应libhw265编码器命令行参数:--LookAheadThreads。

-adap_I

libhw265编码器参数

设置开启场景自适应I帧,开启后会提高编码画质,降低编码速率。取值范围[0, 1],默认值为1。如果不是此范围内,设为默认值1。

对应libhw265编码器命令行参数:--adapt_i。

-profile

libhw265编码器参数

设置HW265编码器的编码复杂度,目前仅支持main profile,默认值为0。

-qualityset

libhw265编码器参数

设置编码画质等级,可选2,3,5,6四种档位,编码速度逐级加快,编码质量逐级降低,默认值为3。

对应libhw265编码器命令行参数:--preset。

-keyint

libhw265编码器参数

设置I帧间隔。一般值越大,画质越高,编码速率越高。不小于1,默认值为150。

对应libhw265编码器命令行参数:--keyInt。

-bframe_nums

libhw265编码器参数

设置最大连续B帧数。一般值越大,相同码率下画质越高,编码速率越低。范围在[0, 7]之间,默认值为7。

对应libhw265编码器命令行参数:--bframes。

-delay

libhw265编码器参数

设置时域分析缓存帧数。一般值越大,相同码率下画质越高,编码速率越低。取值范围[bframes, 150],默认值25。

对应libhw265编码器命令行参数:--delay。

-rc

libhw265编码器参数

设置标志码控策略。可选{0,1,2},分别代表cqp(固定量化参数),abr(平均码率控制),crf(固定质量因子),如果不是此范围内,设为默认值0。

对应libhw265编码器命令行参数:--rc。

-qp

libhw265编码器参数

设置量化参数QP,一般值越小量化步长越小,精度越高,相同画质下产生的数据量可能会更大。取值范围[1, 51],默认值为18。仅在cqp模式生效。

-abr_bitrate

libhw265编码器参数

设置平均码率。一般值越大,画质越高,编码速率越低。范围在[40kbps, 300000kbps]之间,如果超过此范围会设为默认值2000。

对应libhw265编码器命令行参数:--br。仅在abr模式生效。

-crf

libhw265编码器参数

设置crf码控水平。一般crf值越小,码率、画质越高,编码速率越低。范围在[0, 51]之间,如果超过此范围会设为默认值23。

对应libhw265编码器命令行参数:--crf。仅在crf模式生效。

FFmpeg详细使用教程请参见官网:https://ffmpeg.org/