标签: mpeg-dash

HLS和MPEG-DASH有什么区别?

似乎两个协议都做同样的事情,但是一个优势是否优于另一个?

streaming http-live-streaming mpeg-dash

40
推荐指数
3
解决办法
5万
查看次数

给定一个MPEG DASH .mpd URL,是否可以通过youtube_dl关闭所有媒体片段?

我正在寻找一个MPEG DASH下载器和youtube_dl只是打我.

给定一个.mpd网址,是否可以使用youtube_dl下载所有媒体片段呢?

download youtube-dl mpeg-dash

20
推荐指数
1
解决办法
4万
查看次数

低延迟(<2s)实时视频流HTML5解决方案?

由于Chrome很快就会禁用Flash,我需要开始研究flash/rtmp html5替换解决方案.

目前使用Flash + RTMP,我有一个实时视频流,延迟时间<1-2秒.

我已经尝试过MPEG-DASH,这似乎是流媒体的新行业标准,但是我认为5秒延迟是我能从中榨取的最好的延迟.

对于上下文,我试图允许用户控制他们可以在流上看到的物理对象,因此任何超过几秒钟的延迟都会导致令人沮丧的体验.

有没有其他技术,或者是否真的没有低延迟的html5解决方案用于直播?

html5 rtmp video-streaming mpeg-dash

20
推荐指数
1
解决办法
2万
查看次数

使用mp4box直播短划线内容

我正在尝试使用媒体源扩展API将H.264内容直播到HTML5.

以下方法效果很好:

ffmpeg -i rtsp://10.50.1.29/media/video1 -vcodec copy -f mp4 -reset_timestamps 1 -movflags frag_keyframe+empty_moov -loglevel quiet out.mp4

然后: mp4box -dash 1000 -frag 1000 -frag-rap out.mp4

我可以使用MP4Box输出(out_dashinit.mp4)并通过Web Sockets(块大块)将其发送到将客户端提供给媒体源API的JavaScript客户端.

但是,这对于实时内容来说不是一个好方法.

我现在要做的是创建一个单独的管道,以便以最小的可能延迟实时完成.使用FFmpeg,可以将输出重定向到stdout而不是out.mp4抓取内容.我无法弄清楚是否可以将MP4Box组合到管道中.

  1. MP4Box可以从非文件源获取输入数据吗?
  2. MP4Box可以在实时到达时逐步(从文件或其他来源)获取这样的内容吗?即如果流停止1秒钟等待并自动恢复.
  3. 同样的问题,但输出:它可以输出到不是文件(如stdout)的东西,并可以逐步这样做,以便每当输出数据准备好,我将能够采取它并将其传输到Web客户端,基本上生成一个永无止境的虚线MP4.

ffmpeg video-streaming html5-video media-source mpeg-dash

12
推荐指数
1
解决办法
1万
查看次数

三星电视mpeg-dash送货

我正在编写一个新的应用程序,以向三星电视提供内容我正在使用应用程序框架和avplay播放器.

我们使用的内容是用Mpeg-Dash包装的H.264

我已按照下面提供的文档

三星PlayReady文档

我有一个下面提供的playerWrapper

的jsfiddle

var playerWrapper = {
    player: null,
    licenseServerURL : null,
    token : null,
    contentURL : null,
    duration: 0,
};

var playCallBack = {
oncurrentplaytime : function(time) { 
    playerWrapper.setCurTime(time);
    alert(window.debugStatement + 'current time: ' + time);
},
onresolutionchanged: function(width, height) { alert(window.debugStatement + 'resolution changed to width:' + width + ' height:' + height);},
onstreamcompleted: function() { alert(window.debugStatement + 'stream completed');},
onerror: function(error) { 
    console.log(JSON.stringify(error));
    alert(window.debugStatement + 'player error: ' + error);
}
}; …
Run Code Online (Sandbox Code Playgroud)

samsung-smart-tv mpeg-dash

12
推荐指数
0
解决办法
962
查看次数

FFMPEG:Transmux mpegts到mp4给出错误:muxer不支持非可搜索输出

当管道mpegts到ffmpeg,它应该将其转换为mp4并管道转换为stdout时,ffmpeg说:"muxer不支持非可搜索输出".

经过大量的研究后,我得出的结论是mp4是一种不好的选择,可以通过搜索来进行各种动态转码.所以从本质上说:MP4不能通过ffmpeg进行管道传输,这是有道理的.

但我没有连续的mpegts流,我有5秒钟的块.所以它真的就像:

  • 这是我的1 MB*.ts文件
  • 请从管道读取它,直到你点击EOF
  • 请将它转换为mp4(如果你真的需要寻找,请使用缓冲区)
  • 请将完整的内部mp4缓冲区传输到stdout

我需要这些用于HTML5 MediaSource的mp4块,碎片没有问题,我使用mp4box.js,它就像一个魅力.

问题:

  • FFMPEG可以做这种内部缓冲吗?
  • 还有更好的选择吗?

本质上:我可以(不知何故)与ffmpeg交互而不使用文件吗?我目前的解决方案适用于文件和轮询新的块,这是丑陋的.

如果您对我的ffmpeg命令感兴趣,请告诉我.

mp4 ffmpeg transcoding video-streaming mpeg-dash

12
推荐指数
2
解决办法
7600
查看次数

当用户寻找另一个时间时,在HTML5视频流中计算.m4s段文件后缀

我使用Mp4Box为长MP4视频创建了固定长度的片段.Mp4Box创建一个元信息文件mv_init.mp4和段一样mv_1.m4s,mv_2.m4s...我使用HTML5媒体来源扩展流视频和流是否正常工作.

问题是我无法利用我的HTML5播放器的时间寻找功能.当用户使用搜索栏寻找另一个时间点时,我需要为此获取正确的段文件(mv_{number}.m4s)currentTime.

例如:

  • 视频时长:2小时
  • 段大小:10秒
  • 用户寻求时间:25分钟

25分钟= 25×60秒= 1500秒.由于每个段都是10秒,我需要段号1500/10 = 150.所需的段文件是mv_150.m4s.

计算显然是正确的,但HTML5播放器然后在继续流式传输之前下载更多文件mv_150.m4s.

如何正确计算段文件号,以便在搜索之后,流式传输运行顺畅,无需下载任何额外的文件?

要创建MP4视频的片段,我使用以下命令:

MP4Box -dash 10000 -out video.mpd -dash-profile live -segment-name mv_ -rap video.mp4
Run Code Online (Sandbox Code Playgroud)

video-streaming html5-video media-source mpeg-dash mp4box

12
推荐指数
1
解决办法
1285
查看次数

mpeg dash直播流示例

我正在研究MPEG-DASH Live Sreaming,我正在尝试查找直播内容的测试网址.到目前为止,我已经能够找到很多VOD内容,但对于实时流媒体来说并不多.有没有人有测试直播网址?

live-streaming mpeg-dash

10
推荐指数
1
解决办法
2万
查看次数

如何在 FFMPEG 4.1 中启用 LHLS?

我正在尝试使用 FFMPEG 创建低延迟 CMAF 视频流。为此,我想lhls在 FFMPEG 中启用该选项,以便#EXT-X-PREFETCH在 HLS 清单中写入标签。

来自 FFMPEG 文档:

https://www.ffmpeg.org/ffmpeg-all.html

启用低延迟 HLS(LHLS)。添加 #EXT-X-PREFETCH 标签和当前 >segment 的 URI。Apple 没有 LHLS 的官方规范。与此同时,>hls.js 玩家正在尝试标准化一个开放的 LHLS 规范。>草案规范可在https://github.com/video-dev/hlsjs->rfcs/blob/lhls-spec/proposals/0001-lhls.md此选项也将尝试>遵守上述开放规范, 直到 Apple 的规范正式 > 支持它。仅在启用流和 hls_playlist 选项时适用。这是一个实验性功能。

我在 FFMPEG 4.1 中使用以下命令:

ffmpeg -re -i ~/Documents/videos/BigBuckBunny.mp4 \
    -map 0 -map 0 -map 0 -c:a aac -c:v libx264 -tune zerolatency \
    -b:v:0 2000k -s:v:0 1280x720 -profile:v:0 high \
    -b:v:1 1500k -s:v:1 640x340  -profile:v:1 main \
    -b:v:2 500k -s:v:2 320x170  -profile:v:2 …
Run Code Online (Sandbox Code Playgroud)

video ffmpeg low-latency http-live-streaming mpeg-dash

10
推荐指数
1
解决办法
8801
查看次数

将MPEG-DASH段(例如,init.mp4 + segments.m4s)组合回一个完整的source.mp4?

GPAC,http: //gpac.wp.mines-telecom.fr/,可用于与MPEG-DASH规范一起进行视频分割.一种类型的结果是init文件(例如,init.mp4)和几个大致固定持续时间段(例如,段 - %d.m4s)的组合.如果我得到那些结果并且我想将它们反转/组合回一个完整的source.mp4文件怎么办?我可以使用GPAC或ffmpeg吗?

video ffmpeg mpeg-dash

9
推荐指数
1
解决办法
2万
查看次数