MP4在FFmpeg中的Muxer
faststart參數(shù)使用案例
1.默認情況下ffmpeg生成moov是在mdat寫完成之后再寫入
ffmpeg -i 222.flv 333.mp4

2.將moov容器移動至mdat的前面
ffmpeg -i 222.flv -movflags faststart 333.mp4

dash參數(shù)使用案例
ffmpeg -i 222.flv -movflags dash 333.mp4

DASH格式的MP4文件存儲主要以三種容器為主:sidx、moof、mdat。
isml參數(shù)使用案例
流媒體格式發(fā)布
ffmpeg -re -i 222.mp4 -c copy -movflags isml+frag_keyframe -f ismv Stream
?ftypisml ? piff ?8uuidピ?0??鶯/ 歠 <?xml version="1.0" encoding="utf-8"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<meta name="creator" content="Lavf58.20.100" />
</head>
<body>
<switch>
<video systemBitrate="261371">
<param name="systemBitrate" value="261371" valuetype="data"/>
<param name="trackID" value="1" valuetype="data"/>
<param name="systemLanguage" value="und" valuetype="data"/>
<param name="trackName" value="video_und" valuetype="data"/>
<param name="CodecPrivateData" value="000000016764000DACD941E1BBFF0010000F1000000300100000030320F14299600000000168EBE3CB22C0" valuetype="data"/>
<param name="FourCC" value="H264" valuetype="data"/>
<param name="MaxWidth" value="480" valuetype="data"/>
<param name="MaxHeight" value="208" valuetype="data"/>
<param name="DisplayWidth" value="480" valuetype="data"/>
<param name="DisplayHeight" value="208" valuetype="data"/>
</video>
<audio systemBitrate="128042">
<param name="systemBitrate" value="128042" valuetype="data"/>
<param name="trackID" value="2" valuetype="data"/>
<param name="systemLanguage" value="und" valuetype="data"/>
<param name="trackName" value="audio_und" valuetype="data"/>
<param name="FourCC" value="AACL" valuetype="data"/>
<param name="CodecPrivateData" value="1210" valuetype="data"/>
<param name="AudioTag" value="255" valuetype="data"/>
<param name="Channels" value="2" valuetype="data"/>
<param name="SamplingRate" value="44100" valuetype="data"/>
<param name="BitsPerSample" value="16" valuetype="data"/>
<param name="PacketSize" value="4" valuetype="data"/>
</audio>
</switch>
</body>
</smil>

原理與HLS類似,通過XML格式進行索引,刷新切片內(nèi)容進行直播。