我有一个源mp4,我尝试使用GPAC的mp4box创建MPEG DASH包。 我可以通过GPAC在OSMO4播放器中播放输出MPD文件。
但是我无法在DASH JS播放器@ http://dashif.org/reference/players/javascript/0.2.3/index.html
中播放相同内容当我尝试在其中播放mpd时,我收到错误“创建源缓冲区时出错”
我尝试阅读他们的MPD文件,我发现这些人正在使用音频和视频作为单独的源曲目。
问题1)DASH规范是否声明音频和视频轨道应该是单独的源轨道?
问题2)请在下面找到我创建的MPD文件,如果有人认为存在问题,请告诉我
<MPD type="static" xmlns="urn:mpeg:DASH:schema:MPD:2011" profiles="urn:mpeg:dash:profile:full:2011" minBufferTime="PT1.5S" mediaPresentationDuration="PT0H2M31.63S">
<ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
<Title>Media Presentation Description for file flight_3000.mp4 generated with GPAC </Title>
</ProgramInformation>
<Period start="PT0S" duration="PT0H2M31.63S">
<AdaptationSet>
<ContentComponent id="1" contentType="video"/>
<ContentComponent id="2" contentType="audio" lang="und"/>
<SegmentTemplate initialization="flight_init.mp4"/>
<Representation id="1" mimeType="video/mp4" codecs="avc1.64001f,mp4a.40.02" width="1280" height="720" sampleRate="44100" numChannels="2" lang="und" startWithSAP="1" bandwidth="3096320">
<SegmentTemplate timescale="1000" duration="20164" media="flight_test_flight_3000$Number$.mp4" startNumber="1"/>
</Representation>
<Representation id="2" mimeType="video/mp4" codecs="avc1.64001e,mp4a.40.02" width="640" height="360" sampleRate="44100" numChannels="2" lang="und" startWithSAP="1" bandwidth="1119428">
<SegmentTemplate timescale="1000" duration="20099" media="flight_test_flight_1000$Number$.mp4" startNumber="1"/>
</Representation>
<Representation id="3" mimeType="video/mp4" codecs="avc1.640014,mp4a.40.02" width="320" height="180" sampleRate="44100" numChannels="2" lang="und" startWithSAP="1" bandwidth="722208">
<SegmentTemplate timescale="1000" duration="20164" media="flight_test_flight_600$Number$.mp4" startNumber="1"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
答案 0 :(得分:3)
DASH规范是否声明音频和视频轨道应该是单独的源轨道?
Mpeg-Dash规范对此没有限制:您可以在同一段中同时复用视频和音频,也可以将它们分成两个文件。 这两个选项都可以使用mp4box,你只需要用ffmpeg将它们分开,然后用mp4box表示它们。
请在下面找到我创建的MPD文件,如果有人认为存在问题,请告诉我
你的mpd似乎没问题。 DASH-IF播放器目前只正式支持onDemand和Live配置文件,所以也许你应该尝试将MP4BOX的-profile选项从full更改为onDemand。 更多信息可在他们的Github Wiki上获得:https://github.com/Dash-Industry-Forum/dash.js/wiki
答案 1 :(得分:0)
DASH-IF播放器针对DASH-264规范,建议使用解复用的流(单独的音频和视频轨道)。然而,您可能会发现您的mpd在IE11中播放但在Chrome中失败。
答案 2 :(得分:0)
如果您没有被迫使用MP4Box,您可以尝试免费版www.bitcodin.com。我能够创建可以用dash.js
播放的DASH内容