更新:我在浏览器中有一个视频播放器,可以通过websocket播放mp4视频。播放器仅支持mp4文件。当我检查普通的mp4文件不能在播放器中播放时,一个带有"moovflags“的mp4文件只能在该播放器上播放。对于所有已存储的文件,这将正常工作。但是在实况流( RTSP )的情况下,使用ffmpeg仅在RTSP连接终止时才起作用,因为一旦连接正确终止,"moovflags“标志就会起作用。希望上面的陈述更有意义。由于这种行为,我正在检查是否有任何方法可以首先获得moovflasg或其他东西
我有RTSP直播源,我需要它来转换的RTSP到一个mp4文件,其中有moov标志在文件的开头。我已经检查过openrtsp以获取rtsp的mp4转储,但它只在mp4的页脚上添加moov标志和其他信息(仅当openrtsp关闭rtsp流时才添加)。Ffmpeg有“-movflags faststart”来将页脚信息移动到mp4容器的头部。由于我有一个RTSP直播源,视频数据将背靠背,不会有任何终止。上面的ffmpeg命令仅在rtsp流终止时才起作用。
我们有没有办法制作一个包含mp4页脚信息的mp4容器,这样我就可以把它当做一个活动的源了?
编辑#1我有一个播放mp4视频文件的视频播放器,它只支持播放录制的mp4文件,这是使用"-movflags快速启动“创建的,正常的mp4文件不能在其中播放。这是播放器https://github.com/sonysuqin/WasmVideoPlayer。由于我正在尝试将实时视频流式传输到播放器,因此不可能使用movflag快速启动。
发布于 2021-04-13 23:04:56
在完成之前,无法将mp4标头添加到文件中。这是不可能的,因为mp4文件的结构。标头需要知道文件中每个帧的帧类型、时间戳、大小和文件偏移量。直到文件完成才能知道。您不能在创建mp4时对其进行流式处理。您需要使用诸如HLS或DASH之类的协议来完成此任务。
https://stackoverflow.com/questions/67068589
复制相似问题