use*_*500 5 ffmpeg video-encoding video-streaming h.264
如何计算/检测原始H.264比特流中的帧(图片)?我知道有5种VCL NALU类型,但我不知道如何rec(k)将它们的序列识别为访问单元.我想检测一个帧意味着检测一个访问单元作为访问单元
一组NAL单元,它们按解码顺序连续并且只包含一个主要编码图像.除了主要编码图像之外,访问单元还可以包含一个或多个冗余编码图像,一个辅助编码图像,或不包含编码图像的切片或切片数据分区的其他NAL单元.访问单元的解码总是产生解码图像.
我希望它知道什么是实时流出服务器的FPS.
你是正确的解释,如果你想自己解析流,看看这里
但是要以易于阅读和解析的格式(使用任何文本解析器)快速提取流信息,您可以使用 ffprobe
ffprobe -show_streams -count_frames -pretty filename
Run Code Online (Sandbox Code Playgroud)
你会在输出中找到:
对于fps,我听说ffprobe可能会报告fps的一些错误,请尝试一个简单的ffmpeg -i
命令.
ffmpeg -i filename 2>&1 | sed -n "s/.*, \(.*\) fps.*/\1/p"
Run Code Online (Sandbox Code Playgroud)
7.4.1.2.3 NAL单元和编码图像的顺序以及与访问单元的关联
\n\n本节规定了 NAL 单元和编码图片的顺序以及与编码视频序列的访问单元的关联,该视频序列符合附件 A 中指定的一个或多个配置文件,并使用第 2-9 节中指定的解码过程进行解码。
\n\n一个访问单元由一个主编码图像、零个或多个相应的冗余编码图像以及零个或多个非VCL NAL单元组成。VCL NAL 单元与主要或冗余编码图像的关联在子条款 7.4.1.2.5 中描述。
\n\n比特流中的第一个访问单元从比特流的第一个 NAL 单元开始。
\n\n主编码图像的最后一个 VCL NAL 单元之后的以下任何 NAL 单元中的第一个指定新访问单元的开始:
\n\n主编码图像的第一个 VCL NAL 单元的检测约束在子条款 7.4.1.2.4 中指定。
\n\n7.4.1.2.4 主编码图像的第一个 VCL NAL 单元的检测
\n\n本子条款规定了对 VCL NAL 单元语法的约束,这些约束足以能够检测到符合附件 A 中指定的一个或多个配置文件的编码视频序列的每个主编码图片的第一个 VCL NAL 单元,并使用解码器进行解码。第 2-9 条中指定的过程。
\n\n当前访问单元的主编码图片的任何编码切片NAL单元或编码切片数据分区A NAL单元应不同于前一访问单元的主编码图片的任何编码切片NAL单元或编码切片数据分区A NAL单元通过以下一种或多种方式:
\n\n(NOTE 2 \xe2\x80\x93 冗余编码图片中的一些VCL NAL单元或者一些非VCL NAL单元(例如访问单元定界符NAL单元)也可以用于访问单元之间的边界的检测,因此可以帮助检测新的主编码图像的开始。)
\n