当前位置: 首页 > 知识库问答 >
问题:

Mpeg dash mpd文件和段不在同一台服务器上。如何修改段url?

吴单鹗
2023-03-14

我已经生成了片段和文件。使用MP4Box的mpd清单文件。我把片段上传到firebase存储。然后我改变了。mpd文件的段URL到firebase存储下载URL。但这给了我一个无效的mpd文件。

.mpd文件在生成MP4Box之后:

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.8.0-revrelease  at 2019-08-06T09:00:00.629Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H0M38.080S" maxSegmentDuration="PT0H0M5.005S" profiles="urn:mpeg:dash:profile:full:2011">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>try_1.mpd generated by GPAC</Title>
 </ProgramInformation>

 <Period duration="PT0H0M38.080S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="24000/1001" par="16:9" lang="und" startWithSAP="1">
   <ContentComponent id="1" contentType="video" />
   <ContentComponent id="2" contentType="audio" />
   <Representation id="1" mimeType="video/mp4" codecs="avc1.64001F,mp4a.40.2" width="1280" height="720" frameRate="24000/1001" sar="1:1" audioSamplingRate="48000" bandwidth="1545875">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <SegmentList timescale="1000" duration="4000">
     <Initialization sourceURL="segment_init.mp4"/>
     <SegmentURL media="segment_1.m4s"/>
     <SegmentURL media="segment_2.m4s"/>
     <SegmentURL media="segment_3.m4s"/>
     <SegmentURL media="segment_4.m4s"/>
     <SegmentURL media="segment_5.m4s"/>
     <SegmentURL media="segment_6.m4s"/>
     <SegmentURL media="segment_7.m4s"/>
     <SegmentURL media="segment_8.m4s"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

更改SegmentURL后的. mpd文件

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.8.0-revrelease  at 2019-08-06T09:00:00.629Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H0M38.080S" maxSegmentDuration="PT0H0M5.005S" profiles="urn:mpeg:dash:profile:full:2011">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>try_1.mpd generated by GPAC</Title>
 </ProgramInformation>

 <Period duration="PT0H0M38.080S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="24000/1001" par="16:9" lang="und" startWithSAP="1">
   <ContentComponent id="1" contentType="video" />
   <ContentComponent id="2" contentType="audio" />
   <Representation id="1" mimeType="video/mp4" codecs="avc1.64001F,mp4a.40.2" width="1280" height="720" frameRate="24000/1001" sar="1:1" audioSamplingRate="48000" bandwidth="1545875">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <SegmentList timescale="1000" duration="4000">
     <Initialization sourceURL="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_init.mp4?alt=media&token=52f0a3e4-8994-4538-876e-14aaa4d5ab29"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_1.m4s?alt=media&token=ec1c7959-3191-4774-8187-ad4f8358a91c"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_2.m4s?alt=media&token=7cca4f12-c295-45b9-b094-0115f2415c95"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_3.m4s?alt=media&token=6aef7cb0-a637-4abb-9e92-c9cb44805d27"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_4.m4s?alt=media&token=01df0576-401d-4b2a-8434-6f11ecdb74bf"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_5.m4s?alt=media&token=2ec2692f-5178-4b74-bfa8-cf862fc7e2b4"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_6.m4s?alt=media&token=a18b54ea-2e81-4ec6-8030-459a67893ff5"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_7.m4s?alt=media&token=c6f820b7-f3f3-4625-b8bd-2118ff7e9635"/>
     <SegmentURL media="https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_8.m4s?alt=media&token=99d2b5b4-1746-491d-8f85-7782e5fdf488"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

我试过BaseURL标签。但它也不起作用。

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.8.0-revrelease  at 2019-08-06T09:00:00.629Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H0M38.080S" maxSegmentDuration="PT0H0M5.005S" profiles="urn:mpeg:dash:profile:full:2011">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>try_1.mpd generated by GPAC</Title>
 </ProgramInformation>
 <BaseURL>https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/</BaseURL>

 <Period duration="PT0H0M38.080S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="24000/1001" par="16:9" lang="und" startWithSAP="1">
   <ContentComponent id="1" contentType="video" />
   <ContentComponent id="2" contentType="audio" />
   <Representation id="1" mimeType="video/mp4" codecs="avc1.64001F,mp4a.40.2" width="1280" height="720" frameRate="24000/1001" sar="1:1" audioSamplingRate="48000" bandwidth="1545875">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <SegmentList timescale="1000" duration="4000">
     <Initialization sourceURL="dash-mpeg%2Fsegment_init.mp4?alt=media&token=52f0a3e4-8994-4538-876e-14aaa4d5ab29"/>
     <SegmentURL media="dash-mpeg%2Fsegment_1.m4s?alt=media&token=ec1c7959-3191-4774-8187-ad4f8358a91c"/>
     <SegmentURL media="dash-mpeg%2Fsegment_2.m4s?alt=media&token=7cca4f12-c295-45b9-b094-0115f2415c95"/>
     <SegmentURL media="dash-mpeg%2Fsegment_3.m4s?alt=media&token=6aef7cb0-a637-4abb-9e92-c9cb44805d27"/>
     <SegmentURL media="dash-mpeg%2Fsegment_4.m4s?alt=media&token=01df0576-401d-4b2a-8434-6f11ecdb74bf"/>
     <SegmentURL media="dash-mpeg%2Fsegment_5.m4s?alt=media&token=2ec2692f-5178-4b74-bfa8-cf862fc7e2b4"/>
     <SegmentURL media="dash-mpeg%2Fsegment_6.m4s?alt=media&token=a18b54ea-2e81-4ec6-8030-459a67893ff5"/>
     <SegmentURL media="dash-mpeg%2Fsegment_7.m4s?alt=media&token=c6f820b7-f3f3-4625-b8bd-2118ff7e9635"/>
     <SegmentURL media="dash-mpeg%2Fsegment_8.m4s?alt=media&token=99d2b5b4-1746-491d-8f85-7782e5fdf488"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

.mpd文件在我更改了段URL和BaseURL后无效。

共有2个答案

邬安邦
2023-03-14

我在胡乱猜测:

此URL可能不正确,“/”被转义为/

https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg%2Fsegment_1.m4s?alt=media&token=ec1c7959-3191-4774-8187-ad4f8358a91c

我会尝试:

https://firebasestorage.googleapis.com/v0/b/angar-fashion.appspot.com/o/dash-mpeg/segment_1.m4s?alt=media&token=ec1c7959-3191-4774-8187-ad4f8358a91c

如果更改URL不起作用-我会使用以下内容调试您的播放器:https://www.telerik.com/fiddler

贺栋
2023-03-14

将其替换为

 类似资料:
  • 问题内容: 我有带有git存储库的家庭服务器。现在,我正在尝试在现有的PHP存储库上配置Jenkins。 我已经正常安装了Jenkins,但是在创建Job时出现错误: 储存库网址= /home/git/repositories/testing.git 错误如下: 无法连接到存储库:命令“ git ls-remote -h /home/git/repositories/testing.git HEA

  • 问题内容: 我目前可以在我的Apache服务器上通过mod_wsgi或PHP运行Django。 我的Django项目在以下位置运行:http:// localhost,源代码在C:/ django_proj 我的PHP项目在以下位置运行:http://php.localhost,源代码在C:/ web 如果同时打开,则php.localhost和localhost转到Django项目。我已经通过A

  • 假设我有一个Foo类和一个jax-rs FooResource,它将API公开给CRUD Foos。 Foo表示MongoDB文档。 在FooResource中,我将有如下内容: 问题是,json中的foo对象将只包含已经更改的字段,但我从来不知道它将是什么字段。 我使用带Panache扩展的Quarkus,我看到的唯一方法是从DB检索实体,然后检查从http请求接收到的foo对象中的每个字段,看

  • 在将NGINX Plus与FastCGi(PHP-FPM)一起使用时,问题是我们需要在NGINX Plus和FastCGi服务器上都有相同的文件集。 这是我的配置示例:- 机器1:Nginx Plus机器2:FastCGI(PHP-FPM) 我的Nginx配置: 我在NGINX和FastCGI服务器的/var/example/(documentroot)中都有一个简单的“hello.php”文件。

  • 问题内容: 我在DWR中使用Spring。我想返回一个文件对象作为响应,但是我将文件(要发送)保存在服务器的临时位置,然后将其位置作为href发送给客户端的锚标记,但是我想知道是否有办法抛出该文件文件直接发送到响应对象上的浏览器,而无需将其临时保存在服务器上。 我希望是否有办法通过DWR发送文件作为响应。 问题答案:

  • 问题内容: 我需要将Jenkins 2.32版从服务器A移至Jenkins 2.72.1服务器B。两台服务器均具有ubuntu 16.04.3,由于内存问题,我无法安装任何插件,也无法在服务器A中使用该插件。有什么办法可以实现这一目标? 问题答案: 将目录中的所有文件复制到新服务器。 将新服务器指向新目录。 将Jenkins war文件(或servlet容器设置,如果有的话)复制到新机器上并启动它