标签: mpeg-dash

使用DASH流式传输多轨音频

我们正在创建一个基于Web浏览器的音乐流媒体服务,该服务可以传输包含单独的同步音轨的文件.文件基本上是mp4s,但有一些额外的框.

流式传输将遵循MPEG-DASH标准,并且希望不重新发明轮子(例如,有dash.js).


更新160525 - 添加更多背景:

MPEG-DASH是项目的一项要求,无论是其功能(适应性,简易服务器设置等),还是因为我正在研究的项目只使用MPEG标准.

流本身是静态文件的按需播放,即没有直播.播放将有两种模式; 一个只播放曲目的静态模式,以及一个用户可以改变音量,平移等的交互模式.现在,静态播放很好.


现在,流式同步多轨音频似乎并不是最常见的事情,我遇到了几个问题:

1.遵循MPEG-DASH标准

MPEG-DASH似乎高度关注视频流.

是否有任何关于纯音频流的文档或指南,我无法找到?

2. HTML5元素与Web Audio API

AFAIK,<video><audio>元素一次只支持一个音轨.它们提供了大量的魔术通道MediaSource.addSourceBuffer(),可以对输入缓冲区进行即时解码.

解决这个问题的两种可能方法是:

  1. 使用多个<audio>元素并手动同步它们
  2. 使用Web Audio API(a)将缓冲区组合成发送到音频上下文目标的单个信号,或(b)AudioNode为每个轨道创建s并手动同步它们.这意味着我们必须处理解码

有没有其他或更好的方法来流式传输多个同步音轨?

3.使用现有库

dash.js参考播放器遵循DASH-AVC/264指南,根据我的理解,该指南解决了视频流,并将同时播放的音频轨道的数量限制为一个.

它还使用HTML5 <video>元素,这导致上面的问题.

它,然而,含有巨大数额的DASH相关的功能,如自适应流,MPD清单解析等等等等.

dash.js是多轨音乐流媒体的最佳选择,还是最终成为黑客?


如果我误解了任何事情,我非常乐意回答问题或纠正错误!

javascript audio-streaming html5-audio mpeg-dash web-audio-api

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

如何下载出现在服务器上的 Dash 视频文件?

是否有可能,给定一个像https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd这样的 mpd 文件,轻松下载存储在服务器上的所有 Dash 文件(假设我们知道它是服务器上的静态内容) . 也就是说,我应该能够运行一个 HTTP 服务器来为我下载的内容提供服务,并将 Dash 播放器指向它以播放相同的视频。

youtube-dl 似乎没有给我 Dash 包。我可以使用 curl 来像浏览器一样执行 XHR 请求,但我希望有一种更简单的方法。

在此处输入图片说明

shell video streaming video-streaming mpeg-dash

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

实时流媒体:node-media-server + Dash.js 配置为实时低延迟

我们正在开发一款应用程序,可以实时监控您的后院。每个客户端都有一个连接到互联网的摄像头,流式传输到我们的公共 node.js 服务器。

我正在尝试使用 node-media-server 发布一个 MPEG-DASH(或 HLS)流,以便我们的应用程序客户端在世界各地的不同网络、带宽和分辨率上可用。

我们的目标是尽可能接近“实时”生活,以便您可以立即监控后院发生的事情。

已经完成的技术流程是:

  1. 我们服务器上的 ffmpeg 进程处理传入的相机流(每个相机的单独子进程)并通过本地机器上的 RTSP 发布流以供节点媒体服务器用作“输入”(我们还保存分段文件,生成缩略图等)。负责的 ffmpeg 命令是:

    -c:v libx264 -preset ultrafast -tune zerolatency -b:v 900k -f flv rtmp://127.0.0.1:1935/live/office

  2. node-media-server 正在使用我发现的“实时流媒体”的默认配置运行

    private NMS_CONFIG = {
    server: {
      secret: 'thisisnotmyrealsecret',
    },
    rtmp_server: {
      rtmp: {
        port: 1935,
        chunk_size: 60000,
        gop_cache: false,
        ping: 60,
        ping_timeout: 30,
      },
      http: {
        port: 8888,
        mediaroot: './server/media',
        allow_origin: '*',
      },
      trans: {
        ffmpeg: '/usr/bin/ffmpeg',
        tasks: [
          {
            app: 'live',
            hls: true,
            hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]',
            dash: true, …
    Run Code Online (Sandbox Code Playgroud)

ffmpeg live-streaming node.js mpeg-dash dash.js

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

FFMPEG中创建碎片MP4的刷新和延迟问题

我正在使用以下命令为html5流创建一个支离破碎的mp4:

-i rtsp://172.20.28.52:554/h264 -vcodec copy -an -f mp4 -reset_timestamps 1 -movflags empty_moov+default_base_moof+frag_keyframe -loglevel quiet -
Run Code Online (Sandbox Code Playgroud)
  1. "-i rtsp://172.20.28.52:554/h264"因为源是来自ip camera的rtp数据包流中的h264.为了测试,摄像机的GOP设置为1(即所有帧都是关键帧)
  2. "-vcodec copy"因为我不需要转码,只能转换到mp4.
  3. "-movflags empty_moov + default_base_moof + frag_keyframe"根据媒体源扩展规范创建一个分段的mp4.
  4. " - "最后为了输出mp4到stdout.我抓住了输出并通过网络套接字将其发送到webclient.

一切都运行良好,期待我试图解决的延迟问题.如果我每次从stdout进入数据时都会记录,并且到达时间戳,我得到这个输出:

16/06/2015 15:40:45.239数据大小= 24

16/06/2015 15:40:45.240得到的数据大小= 7197

16/06/2015 15:40:45.241得到数据大小= 32768

2015年6月16日15:40:45.241数据大小= 4941

2015年6月16日15:40:45.241数据大小= 12606

2015年6月16日15:40:45.241数据大小= 6345

16/06/2015 15:40:45.241得到数据大小= 6339

2015年6月16日15:40:45.242得到数据大小= 6336

2015年6月16日15:40:45.242得到数据大小= 6361

2015年6月16日15:40:45.242获得数据大小= 6337

16/06/2015 15:40:45.242得到数据大小= 6331

2015年6月16日15:40:45.242得到数据大小= 6359

16/06/2015 15:40:45.243得到的数据大小= 6346

16/06/2015 15:40:45.243得到的数据大小= 6336

2015年6月16日15:40:45.243数据大小= 6338

2015年6月16日15:40:45.243得到数据大小= 6357

2015年6月16日15:40:45.243得到数据大小= 6357

16/06/2015 15:40:45.243得到的数据大小= 6322

16/06/2015 15:40:45.243得到数据大小= 6359

2015年6月16日15:40:45.244数据大小= 6349

16/06/2015 …

mp4 ffmpeg video-streaming media-source mpeg-dash

8
推荐指数
1
解决办法
5027
查看次数

HTML5可以通过其视频标签播放.mpd清单文件吗?

我有一个Movie.Manifest.mpd文件,由5个.webm视频流(由不同大小和bps组成)和1个音频文件组成.我问的问题是:它可以通过"简单"的HTML5视频标签播放吗?

我试过这个并不起作用:

<video controls>
  <source src = "Movie_Manifest.mpd"/>
</video>
Run Code Online (Sandbox Code Playgroud)

它有效,但它选择质量最低的视频流,输出是滞后的.我希望它有自适应比特流.您可能会想,"您认为您的带宽是那么慢吗?" 是的,我的带宽很慢,但不是那么慢.此外,当我自己运行低质量的webm文件时,它运行顺畅.

重申一下:

1)我可以使用"简单"HTML5视频标签进行自适应比特流传输吗?

要么

2)我是否必须使用开源媒体播放器(视频标签将通过javascript访问)?

谢谢,快乐流媒体

javascript html5 transcoding video-streaming mpeg-dash

8
推荐指数
1
解决办法
4243
查看次数

如何使用 DRM 下载 MPEG Dash?

是否可以使用 DRM 下载 MPEG Dash 内容?

如何使用 MPD 文件解密?

我尝试下载所有 M4S 片段(音频和视频),但是当我加入片段时,视频无法正常工作。

该站点使用 Widevine 平台进行 DRM。

我也尝试过youtube-dldash-proxy,但还是没有成功。

我在谷歌上搜索,但没有成功。

drm youtube-dl widevine mpeg-dash

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

如何在 iOS 中播放 MPEG-DASH 视频流?

我正在尝试为视频流编写一个基于 Java 脚本的 MPEG-DASH 实现。我参考了以下文件

这些图书馆正在使用 MSE(媒体源扩展)

我的理解

MPEG-DASH是流媒体视频的国际标准。但目前在 iOS 设备中并不天真地支持。在其他浏览器和设备中,它需要支持 MPEG-DASH 的 java 脚本库或视频播放器。(例如:Dash.Js、Shaka 播放器等)

另一种流媒体技术是HLS。它是由 Apple 创建的自适应流媒体通信协议。Safari 浏览器可以在网页、iPhone 和 iPod touch 设备中播放 HLS 流。

在这里我们可以看到 MPEG-DASH(由于 MSE)目前在 iOS 设备中并不天真地支持。

现在我的疑惑

  1. 我们如何在没有 MSE 的情况下在 iOS 中流式传输 MPEG-DASH 视频?
  2. Facebook其他流媒体服务如何播放他们的视频?仅适用于 HLS 吗?

任何建议/解释都会更有帮助。

html javascript video ios mpeg-dash

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

什么是 .MPD 文件?

在 DASH(基于 HTTP 的动态自适应流媒体)的背景下,MPD 文件究竟是什么?

它的格式是正式指定的吗?如果是这样,它在哪里可用?

它在查看加密媒体的上下文中扮演什么角色?

(具有关于文件各自字段是什么以及它们做什么的描述性评论的示例文件将不胜感激,最好以比正式规范更易于访问和简洁的方式)。

mpd mpeg-dash

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

YouTube仍在使用DASH吗?

YouTube是否使用MPEG-DASH传送视频?

我看到,如果我在youtube-dl中对某些视频使用-F选项,则不会出现“ DASH视频”,例如https://www.youtube.com/watch?v=Us-TVg40ExM。那么,YouTube是否保持与服务器的连接并通过HTTP请求的“范围”字段请求视频的“片段”?还是正在下载DASH标准化的固定时间段?

我再也无法获得MPD,如:如何获取youtube视频的.mpd文件

谢谢!

youtube mpeg-dash

8
推荐指数
1
解决办法
785
查看次数

fMP4、hvc1 或 hev1 使用什么 HEVC 编解码器标签?

将 HEVC 视频复用到分段 MP4 以使用 MPEG-DASH/HLS 进行流式传输时,如何选择要使用的正确编解码器标签(hvc1或)?hev1

我认为根据标签的不同,复用略有不同ISO/IEC FDIS 14496-15

当示例条目名称为“hvc1”时,对于所有类型参数集的数组,array_completeness 的默认强制值为 1,对于所有其他数组,默认强制值为 0。当样本条目名称为“hev1”时,所有数组的 array_completeness 默认值为 0。

除了这个还有别的吗?

为什么有两个标签,在这两个标签之间选择的标准是什么?

旁注:出于某种原因, Apple 更喜欢hvc1根据其HLS 创作规范。

video-streaming http-live-streaming hevc mpeg-dash fmp4

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