我有FLV流生成的问题.我开发了DVR系统,它应该能够以FLV格式流式传输视频(在Actionscript NetStream上播放).我从原始H264 NAL单元(0x00 0x00 0x00 0x01)接收来自编码器的视频,我也能识别出编码帧IDR或非IDR.
我创建FLV流的解决方案(基于Adobe规范:视频文件格式规范版本10)是:
Stream看起来不错,并且可以通过ffplay,mplayer,vlc等播放.但是不能由基于Actionscript NetStream的播放器播放.
所以,我得到原始的h264数据并使用ffmpeg将其转换为FLV:
ffmpeg -f h264 -i d1.h264 -vcodec copy -f flv d1.flv
并试图兼顾flv的my和ffmpeg.
首先,我看到ffmpeg在FLV标头之后立即添加了AVC序列标头.我已经开始做同样的事了,但是NetStream仍然不支持我的流,而且其他玩家也不再玩了.
好的,那我就继续比较flv了.现在我看到ffmpeg的编码FLV中的NAL单元头有点改变了,但是我无法理解这些改变的意义.我读了很多规格,但没有任何帮助.有人能澄清一下吗?
例如,我的NAL单位看起来如此:00 00 00 01 XX XX ... - 适用于所有单位
FFmpeg NALs:00 00 [14 BA] 61 9A ... - 非IDR(两个字节变量)00 00 [7A 02] 65 88 ... - IDR(两个字节变量)00 00 00 40 06 05 ... - SEI
是否添加了一些计数器或其他什么?
很高兴看到任何想法,链接等