我使用以下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