Video nginx-rtmp+;ffmpeg移动mp4';这是一个飞行中的moov

Video nginx-rtmp+;ffmpeg移动mp4';这是一个飞行中的moov,video,nginx,ffmpeg,mp4,rtmp,Video,Nginx,Ffmpeg,Mp4,Rtmp,我有以下用例: 1) Alice将流发布到nginx rtmp服务器 2) 服务器将流转换为mp4(如果我理解正确,默认值为flv,需要进行编解码器转换) 3) 当Alice还在发布时,Bob应该能够对该mp4文件执行范围请求 然而,似乎只有当mp4文件完全生成时,才能执行用于将flv转换为mp4的ffmpeg命令,然后ffmpeg将进行第二次传递并将“moov”移动到新文件的头部 我们的用例是允许Bob use range request从时间0开始(即从Alice第二次开始发布)在Alice

我有以下用例:

1) Alice将流发布到nginx rtmp服务器

2) 服务器将流转换为mp4(如果我理解正确,默认值为flv,需要进行编解码器转换)

3) 当Alice还在发布时,Bob应该能够对该mp4文件执行范围请求

然而,似乎只有当mp4文件完全生成时,才能执行用于将flv转换为mp4的ffmpeg命令,然后ffmpeg将进行第二次传递并将“moov”移动到新文件的头部

我们的用例是允许Bob use range request从时间0开始(即从Alice第二次开始发布)在Alice仍在发布(即尽快观看Alice的视频)时检索mp4文件。因此,以mp4的moov为核心,执行范围请求和实现功能非常简单。原始RTMP似乎无法解决我们的问题,因为我们不能让Bob从Alice录制的时间0开始观看

问题是: 1) 当flv尚未完全生成时,是否可以执行此操作? 2) 还有其他想法吗?我们应该如何使用nginx rtmp/ffmpeg来实现我们想要的功能


非常感谢,不,这是不可能的(除非你构建了一个完全定制的播放器,在这种情况下为什么要使用MP4)。您需要的是像HLS或CMAF这样的可流化或分段格式

不,这是不可能的(除非您构建了一个完全定制的播放器,在这种情况下为什么要使用MP4)。您需要的是像HLS或CMAF这样的可流化或分段格式

有没有办法将h.264帧甚至某些mpeg音频帧的字节动态“馈送”到HTML5浏览器解码器?这就是媒体源扩展(MSE)的意义吗?它是否允许设置AVC解码器配置和音频特定配置(PPS和SPS)?我不明白为什么只包含MPEG a/v数据的FLV不能在浏览器中播放(因为它现在基本上是mp4格式的变体)。@VC.One刚刚尝试过FLV在这种情况下可以工作。i、 我只需要将http服务器指向记录的flv,所有必要的要求都是metFLV肯定不是MP4的变体。MSE使用CMAF,这就是我在回答中这么说的原因。(或者你的意思是f4v。因为这是MP4的一个变体,但这只是adobe试图让你感到困惑。不要让他们这样做)有没有一种方法可以将h.264帧甚至某些mpeg音频帧的字节动态地“馈送”到HTML5浏览器解码器?这就是媒体源扩展(MSE)的意义吗?它是否允许设置AVC解码器配置和音频特定配置(PPS和SPS)?我不明白为什么只包含MPEG a/v数据的FLV不能在浏览器中播放(因为它现在基本上是mp4格式的变体)。@VC.One刚刚尝试过FLV在这种情况下可以工作。i、 我只需要将http服务器指向记录的flv,所有必要的要求都是metFLV肯定不是MP4的变体。MSE使用CMAF,这就是我在回答中这么说的原因。(或者你是说f4v。因为这是MP4的一个变体,但那只是adobe试图让你困惑。不要让他们这么做)