Ffmpeg 如何从碎片化mp4获取帧信息

Ffmpeg 如何从碎片化mp4获取帧信息,ffmpeg,mp4,ffprobe,fmp4,Ffmpeg,Mp4,Ffprobe,Fmp4,我使用以下命令生成fmp4文件 ffmpeg-rtsp_传输tcp-irtsp://someuser:somepassword@somedomain:someport/Streaming/Channel/101-acodec副本-vcodec副本-hls_段类型fmp4-hls_时间2-hls_列表大小10-hls_标志删除_段+追加_列表+按时间分割-hls_播放列表类型事件测试。m3u8 我需要知道每个片段的确切持续时间和帧数。不幸的是,vstats似乎被忽略了 我尝试使用 ffprobe-

我使用以下命令生成fmp4文件

ffmpeg-rtsp_传输tcp-irtsp://someuser:somepassword@somedomain:someport/Streaming/Channel/101-acodec副本-vcodec副本-hls_段类型fmp4-hls_时间2-hls_列表大小10-hls_标志删除_段+追加_列表+按时间分割-hls_播放列表类型事件测试。m3u8

我需要知道每个片段的确切持续时间和帧数。不幸的是,vstats似乎被忽略了

我尝试使用

ffprobe-显示帧。/test0.m4s

但我明白了

[mov,mp4,m4a,3gp,3g2,mj2@0x7fb68e80b000]找不到对应的磁道id 1[mov,mp4,m4a,3gp,3g2,mj2@0x7fb68e80b000]找不到对应的trex(id 1)[mov,mp4,m4a,3gp,3g2,mj2@0x7fb68e80b000]找不到对应的磁道id 0[mov,mp4,m4a,3gp,3g2,3g2,mj2@0x7fb68e80b000]trun磁道id未知,找不到tfhd[mov、mp4、m4a、3gp、3g2、mj2@0x7fb68e80b000]读取标头时出错。/test0.m4s:处理输入时发现无效数据

我假设这是因为初始化段尚未加载,但我找不到这样做的选项

如果我尝试用

ffprobe-显示帧。/init.mp4

我没有得到帧信息和错误

<代码>找不到流0的编解码器参数(视频:H264(AVC1/0X3163661),NO,2560X1440):未指定的像素格式考虑增加“分析”和“概率”选项的值

非常感谢您的帮助

我假设这是因为初始化段尚未加载

实现所需功能的一种方法是
cat
将有关的初始化段和媒体段连接在一起,并将它们输送到
ffprobe

$ cat ./init.mp4 ./test0.m4s | ffprobe -show_frames -

谢谢。只是想弄清楚,如果这是唯一的方法,那么就没有办法发现每个片段中的帧,因为文件必须在处理之前连接在一起。我真的不明白你在问什么,但是,再看看OP,片段的确切持续时间将在片段前面的EXEREF标记中显示。假设内容是固定帧速率,您应该能够通过简单的除法确定帧数。