Ffmpeg 采用AV4格式的分段mp4广播
我想用Ffmpeg 采用AV4格式的分段mp4广播,ffmpeg,mp4,libavformat,fmp4,Ffmpeg,Mp4,Libavformat,Fmp4,我想用avformat功能播放一个实时流(h264->fragmented mp4) 现在基本上我有一个关于这个伪函数的工作示例: avformat_write_header while (!end) { av_read_frame av_write_frame } avformat_write_tailer 我把它作为输出标志:movflags+frag\u关键帧+empty\u moov+default\u base\u moof 我正在将输出发送到一个html5视频,该视频播放精
avformat
功能播放一个实时流(h264->fragmented mp4)
现在基本上我有一个关于这个伪函数的工作示例:
avformat_write_header
while (!end) {
av_read_frame
av_write_frame
}
avformat_write_tailer
我把它作为输出标志:movflags+frag\u关键帧+empty\u moov+default\u base\u moof
我正在将输出发送到一个html5视频,该视频播放精细流畅。
然而,我想广播它,所以每当一个新的播放器进入画面时,我想将非常相同的数据流到画面中:
avformat_write_header
while (!end) {
av_read_frame
av_write_frame (to multiple clients)
}
avformat_write_tailer
但是,第一个客户端可以播放流,但其余客户端不能
这是因为fmp4的结构:第一个客户端接收正确的ftyp
和moov
原子,而其余客户端则不接收
现在我可以修改我的代码,向以后的客户机提供早期的ftype和moov原子,但我认为这是不明智的——如果我错了,请纠正我
我的问题是:
谢谢ftyp和moov一起被称为
初始化片段
,客户端应该首先下载并处理它,无论它打算接下来播放哪个片段。这不是黑客攻击,这正是fmp4的工作原理