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

创建初始化段

彭开畅
2023-03-14

我使用FFMPEG-segment对桌面上的视频捕获进行分段,并通过网络发送它们,以便提供给客户,并使用dash.js播放。问题是播放器正在搜索初始化段,而我似乎不知道如何创建它。
我使用以下ffmpeg命令创建段:

ffmpeg -rtbufsize 1500M -f dshow -r 15 -i video="UScreenCapture"
-flags +global_header -vcodec libvpx -crf 10 -quality good -keyint_min 15 -g 15
-cpu-used 3 -b:v 1000k -qmin 10 -qmax 42  -threads 2 -vf scale=-1:480 -bufsize 1
500 -map 0 -f stream_segment -segment_time 2 -segment_format webm http://localho
st:3000/stream/22/%03d

我为流创建的清单如下所示:

<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="dynamic" availabilityStartTime="2014-06-19T07:47:40.079Z" minBufferTime="PT0S" profiles="urn:mpeg:dash:profile:isoff-live:2011" suggestedPresentationDelay="PT40S" maxSegmentDuration="PT2.000S" minimumUpdatePeriod="PT1000M">
<Period id="1" bitstreamSwitching="true" start="PT0S">
<AdaptationSet mimeType="video/webm" segmentAlignment="true" startWithSAP="1" maxWidth="1280" maxHeight="720" maxFrameRate="15">
<ContentComponent id="1" contentType="video"/>
<SegmentTemplate presentationTimeOffset="0" timescale="90000" media="$Number$/" duration="180000" startNumber="0"/>
<Representation id="1" width="853" height="480" frameRate="15" bandwidth="1000000" codecs="vp8"/>
</AdaptationSet>
</Period>
</MPD> 

播放机调试模式打印以下内容:

Getting the request for time: 0 dash.all.js:2073
Index for time 0 is 0 dash.all.js:2073
Waiting for more video buffer before starting playback. dash.all.js:2073
BufferController video seek: 0 dash.all.js:2073
Marking a special seek for initial video playback. dash.all.js:2073
Start searching for initialization. dash.all.js:2073
Perform init search: stream/22/ dash.all.js:2073
Getting the request for time: 0 dash.all.js:2073
Index for time 0 is 0 dash.all.js:2073
Data changed - loading the video fragment for time: 0 dash.all.js:2073
Getting the request for time: 0 

如何为生成的段创建初始化段?我似乎无法让它起作用。

共有1个答案

毕浩渺
2023-03-14

我不知道如何从ffmpeg中获得初始化段和媒体段,但您可以使用其他几个工具来生成MPEG-DASH段,例如:edash-packager和nginx的这个模块:nginx-rtmp-module with DASH选项、GPAC的DashCast或ITEC大学的DASHEncoder等。

 类似资料:
  • 我希望转换之间的HLS和MPEG破折号。我不能访问原始的完全串联的视频文件,只有个别的HLS段。 在进行到MPEG破折号的转换时,我需要为破折号manifest.mpd文件提供一个初始化段。 我的问题是: null 非常感谢。 更新:使用原始hls段的流代码段。视频一直在播放,但只是黑色的。

  • 我想使用Spring初始值设定项为tomcat创建WAR… 我们的DevOp仍然不习惯将java作为独立运行的想法,并且希望在tomcat中将应用程序作为WAR 我能够产生一个项目,但它似乎产生了一个独立的Spring启动应用程序 我仍然想使用Spring Launalizr来生成所有依赖项,例如: Rest存储库 JDBC模板 石英 Rest 一种解决方案是在eclipse中创建一个动态web项

  • 我不知道这是否是实现我的解决方案的更好方法: 该类是可序列化的,因为我从数据库的Json中获取内容,并将内容映射到对象GetFromJson中(我只需要在数据库中执行一次查询)。因为这个原因,我需要在我所有的应用程序中使用对象,因为这个原因,我认为我需要使用一个单例 有人给我发布了一个库来从数据库中获取JSON。JSON对象解析为,因此我创建了我的类。 现在我有很多rest服务,在我的rest服务

  • 本文向大家介绍Java 数组声明、创建、初始化详解,包括了Java 数组声明、创建、初始化详解的使用技巧和注意事项,需要的朋友参考一下 一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 实例: TestNew.java: 程

  • 在某些情况下,我的广播接收器是不需要的,所以需要检查接收器是否为空,但有些如何这个对象不为空,即使不使用它和造成崩溃。

  • GamedRiver: 我得到一个没有所有组件的空白JFrame(当我使用PlacementWindow的main初始化时,它被正确创建) PlacementWindow: 不幸的是,在调用Update时,该帧不会从原始MainMenu帧切换。有什么想法吗?