我正在尝试使用 libopenh264 获得接近 libx264 质量的直播,但遇到了质量问题。以下是静止的直播:
以下是快速移动时的图像:
我能找到的有关 libopenh264 选项的唯一文档在这里:https://support.medialooks.com/hc/en-us/articles/360000210192-H-264-encoding-options
给出了以下值:
姓名 | 默认值 | 描述 |
---|---|---|
切片 | 0 | 设置并行编码中使用的切片数。仅当将slice_mode设置为“fixed”时才使用 |
切片模式 | 汽车 | 设置切片模式。可能的值:fixedrowmbautodyn |
环路滤波器 | 1 | 如果设置为 1,则启用环路滤波器。若要禁用,请设置值 0。 |
最大大小 | 0 | 以字节为单位设置最大 NAL 大小。 |
允许跳过帧 | 0 | 如果设置为 1,则允许跳帧以达到目标比特率。 |
但似乎像slice_mode这样的选项是不正确的,并且尝试使用像slices和max_nal_size这样的选项没有任何效果。这是我的ffmpeg命令:
ffmpeg -y -i pipe:0 -vf "scale=1920:1080:out_color_matrix=bt709" -color_primaries bt709 -color_trc bt709 -colorspace bt709 -c:v libopenh264 -b:v 9000k -profile:v high -slices 10 -allow_skip_frames 1 -b_strategy 0 -maxrate 12000k -bufsize 9000k -pix_fmt yuv420p -r 60 -g 120 -c:a aac -b:a 256k -ac 2 -ar 44100 -af afftdn -f tee -map 0 "[f=flv]${data.stream.invirtu_rtmp_broadcast_endpoint}?sign=${data.stream.invirtu_rtmp_broadcast_key}|[f=mp4]${escapedTempFilePath}"`;
还有其他选项可以测试 libopenh264 来提高质量吗?