我有管道:
gst-launch-1.0 rtspsrc location=rtsp://ip/cam ! rtph264depay ! h264parse ! mp4mux fragment-duration=10000 streamable=1 ! multifilesink next-file=2 location=file-%03d.mp4
第一段打得很好,其他的不行。当我尝试查看损坏的 mp4 的结构时,会看到一个有趣的错误:
- 莫夫
- 一些数据
- MOOF
- MDAT
- MOOF
- MDAT
“一些数据”中最有趣的事情。没有标题数据,它们只是存在。按块大小,我认为它是 MDAT。我找到块的大小并在它之前添加 MDAT 标头。文件立即生效并播放。但是无法播放未知曲目,因为之前没有 MOOF 标题。
问题出在 mp4mux 和 qtmux 上。在 GStreamer 1.1.0 和 1.2.2 上测试。所有结果都是相同的。
可以使用 multifilesink 不正确吗?