H.264流可以说其SAR和DAR是[0:1]吗



我已经实现了一个视频查看应用程序来显示来自摄像机的视频流。它使用FFMPEG库来接收(H.264(多播视频流,并将其解码为图像,这些图像由我的应用程序显示。它运行得很好,但现在有一个特定的相机流导致我的应用程序崩溃。当用ffprobe探测流时,它表明根据流信息,SAR和DAR都是[0:1]。我以前从未在其他相机上看到过这种情况。正是SAR导致了我的应用程序中的问题,所以现在我已经对它进行了修补,假设SAR为[1:1],以防流指示无效SAR。

我的问题比较笼统,并不是特别针对我的应用程序:

是否允许摄像机报告[0:1]的SAR(和/或DAR(,这似乎毫无意义?如果允许的话,在这种情况下是否应该假设一些默认的SAR和/或DAR

在ffprobe输出的一部分下面,如果这是相关的。。。

$ ffprobe -v info -show_streams -protocol_whitelist udp,rtp,file stream_system_1_cam_11_live.sdp
ffprobe version 3.2.14-1~deb9u1 Copyright (c) 2007-2019 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
Input #0, sdp, from 'stream_system_1_cam_11_live.sdp':
Metadata:
title           : /videoinput_1:0/h264_1/media.stm
Duration: N/A, start: 0.333700, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt470bg/bt470bg/smpte170m, progressive), 1920x1080, 30 fps, 29.97 tbr, 90k tbn, 60 tbc
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_time_base=1/60
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
width=1920
height=1080
coded_width=1920
coded_height=1080
has_b_frames=0
sample_aspect_ratio=0:1
display_aspect_ratio=0:1
pix_fmt=yuvj420p
level=42
color_range=pc
color_space=bt470bg
color_transfer=smpte170m
color_primaries=bt470bg
chroma_location=left
field_order=progressive
[/STREAM]

让我惊讶的是sample_aspect_ratio=0:1display_aspect_radio=0:1!任何想法、信息和意见都将不胜感激,谢谢。

来自H.264规范章节"E.2.1 VUI参数语义":

sar_width和sar_height应为相对素数或等于0。什么时候aspect_ratio_idc等于0或sar_width等于0或sar_height等于0,则应考虑样本纵横比本建议未指明|国际标准。

所以这意味着SAR未指定。

相关内容

最新更新