"俄罗斯音乐盒";卫星上的信道以HEVC 1920x1080 25fps交错传输,记录后VLC将文件识别为50fps,分辨率1920x540-一半高度。但在卫星调谐器上,播放器运行良好——它以1920x1080 25fps的速度播放文件。。。我们什么时候可以期待对HEVC/H.265隔行扫描的支持?这是录音文件(加里格雷和伊娃米勒-wtf(。此外,VLC播放器统计数据中有很多丢失的帧。。
编辑:
我发现了一些有趣的信息,在HEVC中,交错视频内容可以在这里指示:
与H.264/AVC不同,HEVC中不存在隔行扫描专用编码:
- 无混合帧-场交互(如H.264/AVC中的PAFF(
- 变换系数无隔行扫描
- 如果当前图片和参考图片的极性不同(上下或底部-顶部(
但是,在HEVC中,可以指示隔行视频内容(在VPS/SPS和
在VPS/SPS集合CCD_ 2和CCD_。事实上,HEVC标准说:pic_timing
SEI消息中用信号通知后者针对序列中的每个图片发送(。隔行扫描相关设置:如果
general_progressive_source_flag
等于0
并且general_interlaced_source_flag
等于1
CVS中的图片应当仅被解释为交错的在VPS/SPS集合
general_frame_only_constraint_flag=0
中在SPS VUI集合CCD_ 9和CCD_。请注意,如果这些标志为ON则对于每个图片,图片定时SEI应当存在。
具有以下参数的每个图片的图片定时SEI的传输:
source_scan_type = 0
指示隔行扫描模式对于顶场图像信号CCD_ 12和对于底场图像CCD_
也许可以在播放文件之前将这些参数传递给ffmpeg/vlc?
(添加作为答案,因为我还不能发表评论。("这是一个创作问题,与VLC无关"也可能存在创作问题,但该问题与VLC有关,更具体地说,与FFMpeg对交错HEVC缺乏了解有关,这影响了依赖它的众多应用程序。大多数程序都不是为了支持而编写的,这开始成为一个值得注意的问题,因为ATSC 3.0在美国的广播开始了,有些程序是在1080i HEVC中这样做的。一个电视台可以通过"强制"纵横比来绕过它,这使得Mediainfo和VLC等软件错误地将其报告为1080p,但至少它以正确的纵横比显示。https://trac.ffmpeg.org/ticket/5514https://trac.ffmpeg.org/ticket/4141
编码:如果您有一个隔行扫描的源文件,您必须将流解交织到具有一半视频高度和两倍帧速率的单独字段中,并将流标记为HEVC隔行扫描:
ffmpeg -i test.ts -vf separatefields -c:v libx265 -x265-params interlace=tff -c:a copy test.mkv
如果源是渐进的,则上面的线将把25p变换为50i,或者把50p变换为100i。
解码:如果源文件是HEVC交错的,解码器必须先对字段进行交错,然后对流进行解交错。此外,纵横比由于编织滤波器而失真,因此如果视频DAR为16/9(或4/3等(,则必须明确说明
ffplay -i test.mkv -vf weave,bwdif,setdar=16/9