我想要直播 H.264 内容到 HTML5 使用媒体源扩展API。
以下方法非常有效:
ffmpeg -i rtsp://10.50.1.29/media/video1 -vcodec copy -f mp4 -reset_timestamps 1 -movflags frag_keyframe+empty_moov -loglevel quiet out.mp4
接着:
mp4box -dash 1000 -frag 1000 -frag-rap out.mp4
我可以接受 MP4Box 输出(out_dashinit.mp4
并通过Web Sockets将其发送到一个JavaScript客户端,该客户端将其提供给媒体源API。
但是,这不是一个很好的实时内容方法。
我现在要做的是创建一个单独的管道,以便以最小的可能延迟实时完成。
使用FFmpeg可以将输出重定向到 stdout
代替 out.mp4
并抓住内容。
我无法弄清楚是否可以将MP4Box组合到管道中。
- MP4Box可以从非文件源获取输入数据吗?
- MP4Box可以在实时到达时逐步(从文件或其他来源)获取此类内容吗?如果流停止1秒钟,请稍等一会儿,然后自动恢复。
- 同样的问题,但对于输出:它可以输出到不是文件的东西(例如
stdout
并且它可以逐步这样做,以便每当输出数据准备就绪时,我将能够将其转移到Web客户端,从而生成一个永无止境的虚线MP4。