我有管道:
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的结构时,看到一个有趣的错误:
“一些数据”中最有趣的事情。没有标题数据,它们只是存在。按块大小我认为它是MDAT。我找到块的大小并在它之前添加MDAT头。文件立即生效并播放。但是未知的作品无法播放,因为它之前没有MOOF标题。
问题在于mp4mux和qtmux。在GStreamer 1.1.0和1.2.2上测试过。所有结果都是一样的。
可以使用multifilesink不正确吗?
答案 0 :(得分:2)
如果您查看multifilesink
的文档,您会找到答案:
无法使用此元素创建可独立播放的mp4文件,请使用splitmuxsink元素。 ...
所以使用splitmuxsink
并且在完成最后一个文件的修改时不要忘记发送EOS
<强>更新强>
在问到问题的时候,似乎没有像splitmuxsink
这样的元素
答案 1 :(得分:0)
可以使用videotestsrc而不是rtsp来复制吗?
尝试使用“videotestsrc num-buffers =!x264enc!mp4mux ...”替换你的h264接收和depayloading
这可能是一个错误,请在https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer处提交,以便得到维护人员的适当关注。
另外,你是如何尝试的?
由于