问题标签 [adaptive-bitrate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
709 浏览

ios - HLS 流,关于段大小配置的建议

我们正在开发一个需要播放 10 秒视频的移动应用程序。

第一个版本将仅支持iOS (iPhone & iPad)。为了在所有设备上获得良好的质量,我们将使用自适应流媒体。

我彻底阅读了Apple HLS documentation10 秒似乎是HLS segments.

因此,如果我们在案例分割中使用默认的 10 秒并没有真正的用处。

由于我们使用的是带有非常小的视频的移动应用程序,我想知道对于某些设备/网络条件,将这 10 秒的“默认”更改为更小的值是否会更好?

是否可以通过降低此值来加快视频的启动速度?

我想我们在任何地方都能找到的 10 秒“默认”对于必须在“任何地方”(台式机、智能手机、平板电脑)播放的视频来说是一个不错的选择和建议,但也许其他值更适合智能手机?

最后,您是否认为在我们的案例中 HLS 不是一个好的选择,而简单地使用 MP4 视频的渐进式下载会更好?

提前感谢您的回复。

0 投票
1 回答
1672 浏览

jwplayer - 使用播放列表的 ipad 的 jwplayer 自适应比特率

我正在尝试使用 JWplayer 6.9 设置 ABR(Wowza 4.0.3 是流媒体服务器)。

Wowza 转码器插件被禁用。这意味着如果我们调用 wowza 来获取某个视频文件的播放列表,它会自动返回仅包含该文件的 m3u8 格式,而不是该文件的所有现有流。看看怎么做,对于 smil 文件很好,但不适用于播放列表(https 请求,对于 Ipad)

默认情况下,只针对一个流,jwplayer 请求:

回报:

哪个有效。

我正在尝试在 JWplayer 中设置它,以便它获得一个像上面一样但有多个流的播放列表文件,然后显示在流之间切换的图标。

第一次尝试(playlist.m3u8):

jwplayer 的变化:'sources':[{ file: "/files/playlist.m3u8" }],

播放列表.m3u8 文件:

==================================================== ==============

第二次尝试:(更改 jwplayer 代码:文件:“/files/video.smil”)

jwplayer 的变化:'sources':[{ file: "/files/video.smil" }],

微笑文件(/files/video.smil):

以上选项都不会向 Wowza 发出成功请求...如何使用播放列表在 jwplayer 中发送不同的流?

0 投票
0 回答
388 浏览

javascript - 重用源缓冲区中的字节(MediaSource Extensions)

我正在使用 MSE(MediaSource Extensions API)将字节附加到缓冲区(我正在实现 DASH)。似乎 MSE API 提供的源缓冲区并没有公开正在缓冲的实际字节。

因此,在将字节提供给缓冲区之后:

如果我想重用这些字节 - 我需要从 bytes 变量中获取它们。但这是一个糟糕的解决方案,因为这意味着有双倍的内存占用——每个字节变量一个,每个源缓冲区一个。

通过使用 start 和 end 方法迭代 range 变量,可以很容易地获得缓冲范围:

是否也有可能以某种方式获取缓冲区缓存的实际字节,以便我可以重用它们?

0 投票
1 回答
1988 浏览

encryption - 用于 HLS 的 AES-128。它是如何应用的?

关于此处提到的 AES-128 加密方法的问题。

这种方法究竟如何应用于 HLS 媒体片段?在将它们打包成 PES 有效负载之前,是加密的 MPEG-2 TS 容器(包括 TS/PES 数据包头和 PSI (!?) )还是其中的基本流?

0 投票
1 回答
3725 浏览

video-streaming - mpd 文件中的段范围是什么意思?

我从http://dash-mse-test.appspot.com/media.html获得了一个示例 mpd 文件,下面是一个包含单个表示的片段。

SegmentBase 是什么意思?indexRange 的值是什么意思?

初始化结束范围总是比 indexRange 开始值小一。即上面的2755-1 = 2754(Initialization的值)

谁能帮我理解这些数字的意义?

编辑1:

根据下面@sander 的回答,我了解segmentindex 是字节范围。但是,我仍然对如何使用这个值感到困惑。

例如: <Representation bandwidth="4190760" codecs="avc1.640028" height="1080" id="1" mimeType="video/mp4" width="1920"> <BaseURL>car-20120827-89.mp4</BaseURL> <SegmentBase indexRange="674-1149"> <Initialization range="0-673" /> </SegmentBase> </Representation>

此表示中只有一个片段包含单个文件中的整个视频剪辑。(文件大小约为 90mb)。

初始化范围提到 0-673。所以从文件的第 0 字节到文件的第 673 字节包含视频的初始化段。我的理解对吗?

如果是这样,该文件大约为 90mb。如何按字节范围获取其他段?SegmentBase 仅提及 indexRange 674-1149。

顺便说一句,我正在使用这个播放器来了解 segmentindex。

http://dash-mse-test.appspot.com/dash-player.html?url=http://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827-manifest.mpd

查看使用 Chrome 的检查工具发送的标头请求,有很多请求发生在小字节范围内,但我不确定如何从 MPD 获取这些字节范围。


谢谢

0 投票
1 回答
609 浏览

video-streaming - MP4 H264 VBR,如何获取每秒视频的比特率?

我有一些用 H264 编码并显示在我的网站上的 MP4 视频。

我担心的是带宽消耗。我正在尝试限制带宽以不发送超过一段时间间隔所需的 MP4 视频数据。

例如,考虑视频比特率的第一秒是 100KB。在这种情况下,我只需要在第一秒内向浏览器发送 100KB 的视频数据。

我的问题是每秒获得这样的价值。有没有办法在视频编码后获取这些信息?有没有办法通过从 ffmpeg 编码控制台获取数据来获取此类信息?或者是否有任何低级 API(C、C++、...)来做这样的工作?

谢谢!

0 投票
2 回答
3231 浏览

video.js - Videojs 中的 SMIL 自适应流式传输

使用 SMIL 文件在 videojs 播放器中利用自适应流媒体需要什么。我在我的 wowza 应用程序中创建了 SMIL 文件,它正在创建我的 4 个单独的流并使它们可用。但是,我无法让使用 videojs 的网页正确播放 SMIL 文件。非常感谢有关该编码的提示或在哪里可以找到正确的文档。

0 投票
1 回答
621 浏览

android - Wowza:音频文件中的 Vod 自适应比特率流问题

我正在为我的应用程序使用 Wowzastreamengine-4.0.3。我已经在服务器上构建了 wowza。我必须为 2g(或更低的网络连接)自适应比特率。

我已经按照这个链接设置了所有自适应比特率

http://www.wowza.com/forums/content.php?546-How-to-do-adaptive-bitrate-streaming

我为不同的比特率创建了不同的微笑文件,但它们都不能正常工作,因为我已经通过运行应用程序在 2g 网络中测试了我的 android 手机。但它不能完美地工作,它坚持某个点我找不到那里的问题?请帮助我。在此先感谢

我在下面提到了一些微笑文件。文件wowzastreamengine/content/夹中的所有文件

1

2

3

4

5

0 投票
1 回答
1536 浏览

manifest - MPEG-DASH - AdaptationSet 中的内容如何分离?

我正在尝试了解 MPD 格式。我在标准中阅读了有关 AdaptationSet 的信息,但我不太了解如何将表示分离为不同的 AdaptationSet。

该标准指出:

根据存在于 Representations 中的媒体内容组件的媒体内容组件属性,将 Representations 排列成 Adaptation Sets,即

例如:http ://www-itec.aau.at/~cmueller/libdashtest/showcases/redbull_segment_template.mpd

有五个AdaptationSet,我认为媒体组件类型(contentType)都是视频,虽然我不明白contentType="RedBull 320x240"contentType="RedBull 480x360"等属性的值和图片前两个adaptationSet 的纵横比相等,后三个AdaptationSet 的纵横比相等。对于其他提到的属性(角色、观点等),没有提供任何信息。

再举一个例子: http: //ftp-itec.uni-klu.ac.at/dash/conformance/mp4-full-gdr/mp4-full-gdr-mpd-AV-BS.mpd,codecs的值不同对于每个表示进入相同的 AdaptationSet。因此,该属性不影响不同 AdaptationSet 中的分离。

有什么帮助吗?

谢谢!

0 投票
1 回答
5618 浏览

ffmpeg - 创建指向其他 m3u8 文件的 m3u8 文件

我正在寻找基于带宽指向其他 m3u8 文件的 m3u8 文件,像这样

我希望能够使用 ffmpeg 做到这一点,但我似乎找不到任何关于这样做的信息。这可能是错误的方法,所以如果有人能指出我正确的方向,将不胜感激。