ffmpeg - 升级现有Level-4.1的h.264解决方案以支持4K(Level-5.2)

标签 ffmpeg h.264 x264 video-codecs

我目前正在研究在 H.264 编码器上支持 4K(3840x2160)。 当我研究H.264的规范时,它说Level-5.2(XAVC)支持4K分辨率。 为了检查实现情况,我使用 FFMPEG 中的 x264 对全高清(1920x1080)比特流进行了三个不同级别(Level-4、4.1 和 5.2)的编码。

这是我注意到的 - 所有三个编码比特流,针对不同级别进行编码,逐个像素匹配。 - 我想知道如果编码是针对不同级别(Level-4、4.1和5.2)完成的,为什么比特流没有变化。

  • 我有一个高422 Level-4.1的解决方案,Transformation、Quantazition、CAVLC等核心模块是否有任何变化以支持4K(3840 x 2160)/XAVC。

  • 或者所有Level-5.2的处理与Level-4.1相同。

如果有人可以向我推荐任何解释 H.264/AVC 和 XAVC 处理差异的文档,那将非常有帮助

最佳答案

级别只是一种通知编码器/解码器每秒需要处理多少个宏 block 的方法。它根本不会改变压缩。如果您告诉编码器以 5.2 级别进行编码,然后为其提供 1080p 内容,则它可以生成每秒高达 121.4 帧的文件。 983,040/((1920 × 1080)/(16 × 16))。 4k 高达 30.34 fps 983,040/((3840x2160)/(16 × 16))

级别 4.1 为每秒 245,760 个宏 block 。因此,1080p 可达 30.34 fps,4k 可达 7.5 fps。

关于ffmpeg - 升级现有Level-4.1的h.264解决方案以支持4K(Level-5.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31917700/

相关文章:

h.264 - 使用 RTSP over TCP 通过 h.264 帧传输附加数据

android - 加密从Android设备发送到服务器的视频

android - 为 android x86 & x86_64 架构编译 ijkplayer x264,错误 : unknown type name 'v4si'

video - 如何获得h264比特率

ffmpeg - 在 RTX 3080 上使用 ffmpeg 在 h264 中编码失败

ffmpeg - 将视频与 ffmpeg 添加文本进行比较

c - 为什么 FFmpeg 代码不能在不同的 ARM 64 位平台上编译?

height - H264 从序列参数集 (SPS) NAL 单元获取帧高度和宽度

c++ - 使用 FFMPEG/libavformat 查找 WebM 的持续时间/帧数