FFmpeg的格式名为“dash”:
> ffmpeg -formats
...
E dash DASH Muxer
...
这可能与libavformat / dashenc.c中的代码相对应。
我可以在网上找到关于如何使用WebM DASH Manifest格式的一些项目,但没有任何关于这种其他DASH格式的内容。
有人可以指点我使用命令行或API中使用“DASH Muxer”的文档或示例吗?
答案 0 :(得分:6)
ffmpeg中的dash muxer相当新,尚未出现在文档中。通过查看源代码,我设法让它为我的用例工作。它会创建.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
生成的破折号清单如下所示:
<?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>
清单和关联的流在Android上的ExoPlayer中播放。 它目前似乎只生成DASH实时清单和视频或纯音频文件。虽然从现场变为VOD是微不足道的(看看DASH规范)。 我在Android上测试了ExoPlayer中的流,它运行良好。
答案 1 :(得分:0)
只需填写@Jeroen's answer的说明。
在Windows上如果希望ffmpeg
将输出文件写入特定目录,则应按如下方式编写:
ffmpeg -i [INPUT] -f dash [OPTIONS] C:\your\output\directory/test.mpd
ffmpeg source查找输出路径中的最后/
以分割文件名和输出目录
答案 2 :(得分:0)
在当前版本中: