以下是复制步骤:
规范化H.264视频流
ffmpeg -i 2.h264 -c:v libx264 -intra -r 25 -vf scale = 640x360,setdar = 16:9 2 @ 25fps @ intra @ 640x360.h264 < / strong>
(*)之后,我得到了一个H.264流,其中所有图片均为H.264 IDR帧,fps为25,分辨率为640x360,纵横比为16:9。
生成MP4文件
MP4Box-添加2 @ 25fps @ intra @ 640x360.h264:timescale = 1000 -fps 25 2 @ 25fps @ intra @ 640x360.mp4
< / li>制作破折号MP4片段内容,包括初始化mp4,.m4s文件和一个.mpd文件
MP4Box -dash 5000 -frag 5000 -dash-scale 1000 -frag-rap -segment-name'seg_second $ Number $'-segment-timeline -profile live 2 @ 25fps @ intra @ 640x360。 mp4
我想从第一段的4s开始播放,并且在4s之前不显示任何帧,所以我更改了.MPD文件以修改字段“ SegmentTemplate @ presentationTimeOffset”,“ SegmentTimeline:S @ d” / t”,例如:
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H0M26.000S" maxSegmentDuration="PT0H0M5.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
<Period duration="PT0H0M26.000S">
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="25" par="16:9" lang="und">
<SegmentTemplate presentationTimeOffset="4000" media="seg_second$Number$.m4s" timescale="1000" startNumber="1" initialization="seg_secondinit.mp4">
<SegmentTimeline>
<S d="1000" t="4000"/>
<S d="5000" r="4"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="1" mimeType="video/mp4" codecs="avc3.64101E" width="640" height="360" frameRate="25" sar="1:1" startWithSAP="1" bandwidth="2261831">
</Representation>
</AdaptationSet>
</Period>
</MPD>
从VLC播放器或Edge浏览器播放MPD网址,它总是从第一段的第一帧开始,而且0s〜4s之间的帧也会意外显示。
我的步骤怎么了?还是其他选择?
答案 0 :(得分:0)
已经澄清! 在Shakaplayer中可以很好地工作,但是在Edge浏览器和VLC播放器中不能工作。