微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 movflags 添加到 mp4 文件的顶部,而无需将 ffmpeg 用于实时 RTSP 流

如何解决将 movflags 添加到 mp4 文件的顶部,而无需将 ffmpeg 用于实时 RTSP 流

更新: 我在浏览器中有一个视频播放器,它通过 websocket 播放 mp4 视频。播放器仅支持 mp4 文件。当我检查正常的 mp4 文件不能在播放器中播放时,带有“moovflags faststart”的 mp4 文件只能在该播放器上播放。对于已经存储的文件,这将正常工作。 但是对于直播(RTSP),只有在 RTSP 连接终止后才能使用 ffmpeg,因为一旦连接正确终止,“moovflags faststart”标志就会起作用。 希望以上陈述更有意义。 由于这种行为,我正在检查是否有任何方法可以首先获得 moovflasg 或其他东西

我有 RTSP 实时源,我需要它来将 RTSP 转换为 mp4 文件,该文件文件开头带有 moov 标志。 我已经检查了 openrtsp 以获取 rtsp 的 mp4 转储,但它只在 mp4 的页脚上添加 moov 标志和其他信息(当 openrtsp 关闭 rtsp 流时,onlky)。 Ffmpeg 有“-movflags faststart”将页脚信息移动到 mp4 容器的标题。 由于我有一个 RTSP 实时源,视频数据将背靠背,不会有任何终止。上述 ffmpeg 命令仅在 rtsp 流终止后才起作用。

有什么方法可以制作一个 mp4 容器,其中包含页眉本身中存在的 mp4 页脚信息,以便我可以将其用作实时源?

编辑#1 我有播放 mp4 视频文件的视频播放器,它只支持播放使用“-movflags faststart”创建的录制的 mp4 文件,普通的 mp4 文件不能播放。 这是播放器 https://github.com/sonysuqin/WasmVideoPlayer。 由于我正在尝试将实时视频流式传输到播放器,因此无法使用 movflags faststart。

解决方法

mp4 标头在完成之前无法添加到文件中。由于 mp4 文件的结构,这是不可能的。头部需要知道文件中每一帧的帧类型、时间戳、大小和文件偏移量。在文件完成之前无法知道。您无法在创建 mp4 时对其进行流式传输。您需要使用 HLS 或 DASH 等协议来完成此操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。