我在 nodejs 中编写了一个示例,它通过 mp4 格式的 websocket 连接将一些输入流式传输到客户端。在客户端,mp4 包被添加到 MediaSourceBuffer。
这运行良好,但前提是客户端从第一个包的开头获取流。所以另一个客户端不能播放当前的Stream,因为他不会从一开始就得到Stream。
我尝试(尝试和错误)保存第一个包 ffmpeg 发送并在新连接开始时发送它,然后是当前流。然后 MediaSourceBuffer 由于编码错误而中断..
这是 ffmpeg 命令:
-i someInput -g 59
-vcodec libx264 -profile:v baseline
-f mp4 -movflags empty_moov+omit_tfhd_offset+frag_keyframe+default_base_moof
-reset_timestamps 1
-
“empty_moov+omit_tfhd_offset+frag_keyframe+default_base_moof”部分应该使 Streampackages 独立于将 moovatom 放在每个部分的开头并按关键帧将各部分调整为 59 帧,所以我不明白为什么我不能查看Stream 开始后开始。