ffmpeg常用命令

ffmpeg_hevc_压缩参数_优化

2024-03-21  本文已影响0人  zip11

python 压缩参数 例子

    ffmpeg_command = [
        'ffmpeg',
        '-hwaccel', 'cuda',  # 启用CUDA硬件加速
        '-hwaccel_output_format', 'cuda',  # 指定硬件加速的输出格式
        '-c:v', 'h264_cuvid',  # 使用NVIDIA的硬件解码器进行H.264解码
        '-i', input_file,  # 输入文件
        '-t', '00:05:00',                     # 只处理前5分钟的视频
        '-vf', 'scale_cuda=1280:720',  # 使用NVIDIA硬件加速进行分辨率缩放
        '-c:v', 'hevc_nvenc',  # 使用NVIDIA的硬件编码器进行HEVC编码
        '-preset', 'slow',  # 编码预设,较慢的速度通常意味着更好的压缩,提高输出质量
        '-rc', 'vbr',  # 可变比特率控制
        '-cq', '28',  # 控制质量因子(数值越低质量越好)
        '-b:v', '3M',  # 平均比特率
        '-rc-lookahead' ,"40",  # 设置前瞻帧数
        '-spatial-aq', "1",  # 开启空间自适应量化
        '-temporal-aq', "1",  # 开启时间自适应量化
        '-c:a', 'copy',  # 音频复制,不转码
        output_file  # 输出文件
    ]

-rc-lookahead:

设置前瞻帧数来帮助编码器更好地决策压缩,数值越高,压缩效果可能越好,但同时也会增加编码延时。

对于 -rc-lookahead 参数,它用于指定码率控制的前向搜索大小。该参数的值通常用于调整视频编码的质量和性能之间的权衡。

在 NVIDIA NVENC 编码器中,通常可以将 -rc-lookahead 参数设置为正整数值,表示在码率控制期间进行的帧的最大数量。常见的建议值为 32、40、60 或 120,具体取决于所处理的视频内容和硬件的性能。


-spatial-aq 和 -temporal-aq:开启空间和时间自适应量化,这些功能可以在保持视觉质量情况下降低码率。

-spatial-aq

是 FFmpeg 中的一个参数,用于控制帧内自适应量化(Adaptive Quantization)的功能。该参数针对视频编码时的量化过程,通过对图像空间域内的相关性进行分析,动态地调整量化参数,以提高视频的压缩效率和质量。
具体而言,帧内自适应量化允许编码器在编码时根据图像的局部空间域内的相关性自适应地调整量化参数,以优化压缩效率和保持图像质量。这可以在视频内容具有局部空间相关性的情况下带来更好的编码效果,例如图像中存在细节丰富的区域或者纹理复杂的区域。


-temporal-aq

是 FFmpeg 中的一个参数,用于控制帧间自适应量化(Adaptive Quantization)的功能。该参数针对视频编码时的量化过程,通过对不同帧之间的相关性进行分析,动态地调整量化参数,以提高视频的压缩效率和质量。

具体而言,帧间自适应量化允许编码器在编码时根据帧间关系自适应地调整量化参数,以优化压缩效率和保持图像质量。这可以在视频内容具有时间连续性的情况下带来更好的编码效果,例如视频中有连续的运动或相似的场景。

在 FFmpeg 中,-temporal-aq 参数可以用来开启或关闭帧间自适应量化。当设置为 1 时,表示启用帧间自适应量化;设置为 0 时,表示禁用。默认情况下,该参数是禁用的。

-2pass:启用双遍编码可以在第一遍分析视频,在第二遍时进行更优化的比特率控制。

上一篇 下一篇

猜你喜欢

热点阅读