gpt4 book ai didi

ffmpeg-mp4box-mpeg dash 只播放几个片段

转载 作者:行者123 更新时间:2023-12-04 23:28:18 26 4
gpt4 key购买 nike

在调试段破折号文件时需要帮助

输入是带有这些细节的 MP4。这是从摄像机录制的,摄像机的输出是 mkv,我们在通过 adobe 编辑音频后转换为 MP4

  • 大小:7.51 GB 帧率:25 帧/秒
  • 数据速率:25326kbps
  • 总码率:25525kbps

  • 使用此命令将其转换为另一个 mp4
    ffmpeg -i "input.mp4" -s 1280x720 -c:v libx264 -b:v 750k -bf 2 -g 75 -sc_threshold 0 -an video_1280x720_750k.mp4

    ffmpeg -i "input.mp4" -c:a aac -strict experimental -b:a 96k -ar 32000 -vn audio_96k.mp4

    输出视频有
  • 帧数:25
  • 数据速率:761kbps
  • 比特率:761kbps

  • 然后,通过 MP4Box 创建分段破折号
    MP4Box -dash 10000 -frag 10000 -rap -segment-name video_0_1280000\segment_ video_1280x720_750k.mp4

    MP4Box -dash 3000 -frag 10000 -rap -segment-name audio_0_96000\segment_ audio_96k.mp4

    生成的 MPD 在线验证,完美

    更新! 包含 MPD 文件
    <?xml version="1.0"?>
    <!-- MPD file Generated with GPAC version 0.5.2-DEV-rev621-g236c5f8-master at 2015-10-26T05:16:19.619Z-->
    <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H2M0.000S" maxSegmentDuration="PT0H0M10.000S" profiles="urn:mpeg:dash:profile:full:2011">
    <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
    <Title>video_1280x720_500k_dash.mpd generated by GPAC</Title>
    </ProgramInformation>

    <Period duration="PT0H2M0.000S">
    <AdaptationSet segmentAlignment="true" lang="eng">
    <Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="32000" startWithSAP="1" bandwidth="98434">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <SegmentList timescale="32000" duration="319999">
    <Initialization sourceURL="audio_0_96000/segment_init.mp4"/>
    <SegmentURL media="audio_0_96000/segment_1.m4s"/>
    <SegmentURL media="audio_0_96000/segment_2.m4s"/>
    <SegmentURL media="audio_0_96000/segment_3.m4s"/>
    <SegmentURL media="audio_0_96000/segment_4.m4s"/>
    <SegmentURL media="audio_0_96000/segment_5.m4s"/>
    <SegmentURL media="audio_0_96000/segment_6.m4s"/>
    <SegmentURL media="audio_0_96000/segment_7.m4s"/>
    <SegmentURL media="audio_0_96000/segment_8.m4s"/>
    <SegmentURL media="audio_0_96000/segment_9.m4s"/>
    <SegmentURL media="audio_0_96000/segment_10.m4s"/>
    <SegmentURL media="audio_0_96000/segment_11.m4s"/>
    <SegmentURL media="audio_0_96000/segment_12.m4s"/>
    <SegmentURL media="audio_0_96000/segment_13.m4s"/>
    </SegmentList>
    </Representation>
    </AdaptationSet>
    <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="25" par="16:9" lang="eng">
    <Representation id="1" mimeType="video/mp4" codecs="avc3.64001f" width="1280" height="720" frameRate="25" sar="1:1" startWithSAP="1" bandwidth="764668">
    <SegmentList timescale="12800" duration="125866">
    <Initialization sourceURL="video_0_1280000/segment_init.mp4"/>
    <SegmentURL media="video_0_1280000/segment_1.m4s"/>
    <SegmentURL media="video_0_1280000/segment_2.m4s"/>
    <SegmentURL media="video_0_1280000/segment_3.m4s"/>
    <SegmentURL media="video_0_1280000/segment_4.m4s"/>
    <SegmentURL media="video_0_1280000/segment_5.m4s"/>
    <SegmentURL media="video_0_1280000/segment_6.m4s"/>
    <SegmentURL media="video_0_1280000/segment_7.m4s"/>
    <SegmentURL media="video_0_1280000/segment_8.m4s"/>
    <SegmentURL media="video_0_1280000/segment_9.m4s"/>
    <SegmentURL media="video_0_1280000/segment_10.m4s"/>
    <SegmentURL media="video_0_1280000/segment_11.m4s"/>
    <SegmentURL media="video_0_1280000/segment_12.m4s"/>
    <SegmentURL media="video_0_1280000/segment_13.m4s"/>
    </SegmentList>
    </Representation>
    </AdaptationSet>

    </Period>
    </MPD>

    通过dashjs播放视频..我相信它只是播放初始片段并且错误输出为MEDIA_ERR_DECODE..MEDIA_ERR_SRC_NOT_SUPPORTED..或一些显示 的消息开始未找到..

    通过 chrome 调试,我看到至少 4 个段正在正确加载.. 我不确定发生了什么..

    非常感谢调试问题的任何帮助。 我真的不明白这是否是文件或 ffmpeg 或 mp4box 或 chrome 的问题 .

    chrome调试工具的输出
    [dash.js 1.5.1] new MediaPlayer instance has been created 
    dash.all.js:11 Playback initiated!
    dash.all.js:11 Parsing complete: ( xml2json: 5ms, objectiron: 10ms, total: 0.015s)
    dash.all.js:11 Manifest has been refreshed at Mon Oct 26 2015 10:19:22 GMT-0400 (Eastern Daylight Time)[1445869162092]
    dash.all.js:11 SegmentTimeline detected using calculated Live Edge Time
    dash.all.js:11 MediaSource is open!
    dash.all.js:11 [object Event]
    dash.all.js:11 Duration successfully set to: 120
    dash.all.js:11 Added 0 inline events
    dash.all.js:11 video codec: video/mp4;codecs="avc3.64001f"
    dash.all.js:11 [video] stop
    dash.all.js:11 audio codec: audio/mp4;codecs="mp4a.40.2"
    dash.all.js:11 [audio] stop
    dash.all.js:11 No text data.
    dash.all.js:11 No fragmentedText data.
    dash.all.js:11 No muxed data.
    dash.all.js:11 [video] start
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [audio] start
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 [audio] SegmentList: 0 / 120
    dash.all.js:11 [video] Getting the request for time: 9.83328125
    dash.all.js:11 [video] Index for time 9.83328125 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [audio] Getting the request for time: 9.99996875
    dash.all.js:11 [audio] Index for time 9.99996875 is 0
    dash.all.js:11 [audio] SegmentList: 0 / 120
    dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
    dash.all.js:11 loaded audio:Media Segment:0 (200, 20ms, 6ms)
    dash.all.js:11 loaded video:Media Segment:0 (200, 153ms, 43ms)
    dash.all.js:11 loaded video:Initialization Segment:NaN (200, 0ms, 32ms)
    dash.all.js:11 [video] Initialization finished loading
    dash.all.js:11 loaded audio:Initialization Segment:NaN (200, 0ms, 34ms)
    dash.all.js:11 [audio] Initialization finished loading
    dash.all.js:11 [video] Getting the request for time: 19.6665625
    dash.all.js:11 [video] Index for time 19.6665625 is 1
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [audio] Getting the request for time: 19.9999375
    dash.all.js:11 [audio] Index for time 19.9999375 is 1
    dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [video] Stalling Buffer
    dash.all.js:11 [video] Waiting for more buffer before starting playback.
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [audio] Stalling Buffer
    dash.all.js:11 [audio] Waiting for more buffer before starting playback.
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 <video> loadedmetadata
    dash.all.js:11 Starting playback at offset: 0
    dash.all.js:11 [video] Getting the request for time: 29.499843750000004
    dash.all.js:11 [video] Index for time 29.499843750000004 is 2
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
    dash.all.js:11 [video] Got enough buffer to start.
    dash.all.js:11 [video] seek: 0
    dash.all.js:11 [audio] Getting the request for time: 29.999906250000002
    dash.all.js:11 [audio] Index for time 29.999906250000002 is 2
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [audio] SegmentList: 29.999906250000002 / 120
    dash.all.js:11 [audio] Got enough buffer to start.
    dash.all.js:11 [audio] seek: 0
    dash.all.js:11 loaded audio:Media Segment:9.99996875 (200, 67ms, 24ms)
    dash.all.js:11 loaded video:Media Segment:9.83328125 (200, 71ms, 31ms)
    dash.all.js:11 [audio] Buffered Range: 0.032 - 9.984
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 Start Event Controller
    dash.all.js:11 [audio] Buffered Range: 0.032 - 19.999968
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 <video> play
    dash.all.js:11 [video] start
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [audio] start
    dash.all.js:11 <video> playing
    dash.all.js:11 [video] Buffered Range: 0 - 9
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 Do seek: 0.032
    dash.all.js:11 <video> seek
    dash.all.js:11 [video] Getting the request for time: 29.499843750000004
    dash.all.js:11 [video] Index for time 29.499843750000004 is 2
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
    dash.all.js:11 [video] seek: 0.032
    dash.all.js:11 [audio] seek: 0.032
    dash.all.js:11 [video] Getting the request for time: 9
    dash.all.js:11 [video] Index for time 9 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
    dash.all.js:11 [video] Buffered Range: 0 - 18
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 loaded video:Media Segment:19.6665625 (200, 42ms, 33ms)
    dash.all.js:11 <video> seeked
    dash.all.js:11 Start Event Controller
    dash.all.js:11 <video> playing
    dash.all.js:11 [video] Buffered Range: 0 - 28
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [audio] Getting the request for time: 19.999968
    dash.all.js:11 [audio] Index for time 19.999968 is 1
    dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [audio] Getting the request for time: 29.999906250000002
    dash.all.js:11 [audio] Index for time 29.999906250000002 is 2
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [audio] SegmentList: 29.999906250000002 / 120
    dash.all.js:11 loaded audio:Media Segment:19.9999375 (200, 102ms, 2ms)
    dash.all.js:11 [audio] Buffered Range: 0.032 - 29.983968
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 loaded audio:Media Segment:29.999906250000002 (200, 26ms, 2ms)
    dash.all.js:11 [audio] Buffered Range: 0.032 - 39.999968
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 loaded video:Media Segment:29.499843750000004 (200, 47ms, 7ms)
    dash.all.js:11 Video Element Error: MEDIA_ERR_DECODE
    dash.all.js:11 [video] stop
    dash.all.js:11 [audio] stop
    dash.all.js:11 Video Element Error: MEDIA_ERR_SRC_NOT_SUPPORTED
    dash.all.js:11 <video> play

    最佳答案

    您是否已经分别尝试过音频和视频?这至少可以隔离错误。

    您也可以尝试根据 http://www.dash-player.com/blog/2014/11/mpeg-dash-content-generation-using-mp4box-and-x264/ 对 Assets 进行编码,这对我有用。

    关于ffmpeg-mp4box-mpeg dash 只播放几个片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348274/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com