我使用以下ffmpeg
命令创建从H.264
编码的文件的传输流:ffprobe不显示MPEG传输流的数据包大小为188个字节
ffmpeg -i encoded.mp4 -c copy -map 0 -vbsf h264_mp4toannexb mpegts sample.ts
现在我想要查询的帧和传输流内的数据包。我用
ffprobe -show_frames
其示出了用于音频和视频帧的帧的信息。但我对pkt_size
字段感到困惑。是音频和视频(I/B/P帧)每个基本流的实际帧大小?
而且,当我运行
ffprobe -show_packets
是它该做的传输流中的每个数据包的详细信息?因为每个数据包的size
字段不是188字节,而是与-show_frames
得到的pkt_size
相同。
请问有人可以解释为什么传输流的-show_packets
的大小不是188字节?在复用mp4
到TS
时我做错了什么?
看来ffprobe只给出了有关PES包,而不是即使输入文件的传输流文件(TS容器)的TS包的信息。这是对的吗? – CompNet
我还没有使用ffprobe,但很可能它会显示解复用数据包的大小,即来自基本(h264)流。您可以尝试使用mpeg-ts分析器软件,网上几乎免费。 –
嗨安东,谢谢。是的,我使用了ts分析器,现在它正确显示了每个TS数据包的详细信息,并且TS数据包的总数与(.ts文件/ 188的大小)完全一致。只有我无法确认的是每个TS数据包在.ts文件中复用的时间戳。包含PES报头的TS数据包为每个TS数据包提供PTS,DTS但不提供时间戳。有什么方法可以知道每个TS数据包在TS中被多路复用的时间戳吗? – CompNet