FFmpeg有一个名为"dash"的格式:
> ffmpeg -formats
...
E dash DASH Muxer
...
Run Code Online (Sandbox Code Playgroud)
这可能与libavformat/dashenc.c中的代码相对应.
我可以在网上找到关于如何使用WebM DASH Manifest格式的一些项目,但没有任何关于这个其他DASH格式的内容.
有人能指出我使用命令行或API中的"DASH Muxer"的文档或示例吗?
小智 7
ffmpeg中的破折号复制程序是相当新的,尚未在文档中.通过查看源代码,我设法让它为我的用例工作.它会创建.mpd短划线文件以及段(除非您不进行分段,并计划使用DASH的Range:headers功能进行搜索和部分访问).多路复用器选项包括:
我的用例是直播,精确4秒的片段,没有片段时间轴,使用片段模板,我使用:
ffmpeg -i /dev/dvb/adapter0/dvr0 -vf yadif=0 -r 25 -vcodec libx264 -keyint_min 0 -g 100 -b:v 1000k -ac 2 -strict 2 -acodec aac -ab 64k -map 0:v -map 0:a -f dash -min_seg_duration 4000 -use_template 1 -use_timeline 0 -init_seg_name init-\$RepresentationID\$.mp4 -media_seg_name test-\$RepresentationID\$-\$Number\$.mp4 test.mpd
Run Code Online (Sandbox Code Playgroud)
生成的破折号清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
profiles="urn:mpeg:dash:profile:isoff-live:2011"
type="dynamic"
minimumUpdatePeriod="PT500S"
suggestedPresentationDelay="PT4S"
availabilityStartTime="2016-12-09T10:11:16"
publishTime="2016-12-09T10:13:53"
minBufferTime="PT4.0S">
<ProgramInformation>
</ProgramInformation>
<Period start="PT0.0S">
<AdaptationSet contentType="video" segmentAlignment="true" bitstreamSwitching="true" frameRate="25/1">
<Representation id="0" mimeType="video/mp4" codecs="avc1.64001e" bandwidth="1000000" width="720" height="576" frameRate="25/1">
<SegmentTemplate timescale="1000000" duration="4000000" initialization="init-$RepresentationID$.mp4" media="test-$RepresentationID$-$Number%05d$.mp4" startNumber="1">
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet contentType="audio" segmentAlignment="true" bitstreamSwitching="true">
<Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="64000" audioSamplingRate="48000">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
<SegmentTemplate timescale="1000000" duration="4000000" initialization="init-$RepresentationID$.mp4" media="test-$RepresentationID$-$Number$.mp4" startNumber="1">
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
Run Code Online (Sandbox Code Playgroud)
清单和关联的流在Android上的ExoPlayer中播放.它目前似乎只生成DASH实时清单和视频或纯音频文件.虽然从现场变为VOD是微不足道的(看看DASH规范).我在Android上测试了ExoPlayer中的流,它运行良好.
| 归档时间: |
|
| 查看次数: |
6709 次 |
| 最近记录: |