【发布时间】:2021-03-11 01:12:46
【问题描述】:
“Music Box Russia”卫星频道以 HEVC 1920x1080 25fps 隔行扫描 - 录制后 VLC 将文件识别为 50 fps,分辨率为 1920x540 - 半高。但是在卫星调谐器上,播放器运行良好——它以 1920x1080 25fps 的速度播放文件......我们什么时候可以期待对 HEVC/H.265 隔行扫描的支持? Here 是录制文件 (Garry Gray & Eva Miller - wtf)。另外 - VLC 播放器统计数据中有很多丢帧..
编辑:
我发现了一些有趣的信息,如何在 HEVC 中显示隔行扫描视频内容here:
与 H.264/AVC 不同,HEVC 中不存在隔行专用编码:
- 无混合帧场交互(如 H.264/AVC 中的 PAFF)
- 不对变换系数进行隔行扫描
- 如果当前图片和参考图片的极性不同(上下或 自下而上)。
但是,在 HEVC 中,可以指示交错视频内容 (在 VPS/SPS 和
pic_timingSEI 消息中发出信号,后者是 为序列中的每张图片传输)。隔行相关 设置:
在 VPS/SPS 中设置
general_interlaced_source_flag=1和general_progressive_source_flag=0。事实上,HEVC 标准说:如果
general_progressive_source_flag等于0并且general_interlaced_source_flag等于1,源扫描类型为 CVS 中的图片应仅解释为隔行扫描。在VPS/SPS设置
general_frame_only_constraint_flag=0在 SPS VUI 中设置
field_seq_flag=1和frame_field_info_present_flag=1。请注意,如果这些标志为 ON 那么每张图片都应该有图片时序SEI。每张图片传输Picture Timing SEI,参数如下:
source_scan_type = 0表示隔行模式 用于顶场图像信号pict_struct=1和用于底场图像pict_struct=2
也许可以在播放文件之前将这些参数传递给ffmpeg/vlc?
【问题讨论】:
-
你录制的怎么样?
-
通过使用卫星调谐器 - PVR。带硬盘的调谐器,Linux (Enigma + OpenPLi)。
-
这是一个创作问题,与 VLC 无关。 QuickTime 和 mpv 还可以识别您发布为 1920x540 的示例文件,并按预期播放失真的视频。甚至 mediainfo 也同意我尝试的三个播放器的分析,所以它看起来是正确的(所有 4 个解析器也都假设 50 fps)。
-
我发现了一些有趣的信息,如何在 HEVC 中显示交错视频内容 here。
-
从我所看到的(视觉上)来看,这里毕竟没有问题。只需将纵横比覆盖为 16:9。我在录制的文件上看不到典型的隔行撕裂。您看到帧丢失的事实可能是由于使用了硬件。较旧的 PC 没有原生 H265 解码功能。
标签: ffmpeg vlc hevc interlacing