标签: m3u8

有没有办法在React Native(Android)中添加视频元素?

我正在搜索文档,但尚未成功找到示例代码.我需要从我的流服务器播放视频.有什么办法吗?或者可能是react-js不支持Android上的视频.

android video-streaming http-live-streaming m3u8 react-native

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

使用正则表达式解析HLS m3u8文件

我想解析HLS master m3u8文件并从中获取带宽,分辨率和文件名.目前我正在使用String解析来搜索某些模式的字符串,并使用子字符串来获取值.

示例文件:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=476416,RESOLUTION=416x234
Stream1/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=763319,RESOLUTION=480x270
Stream2/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1050224,RESOLUTION=640x360
Stream3/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1910937,RESOLUTION=640x360
Stream4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3775816,RESOLUTION=1280x720
Stream5/index.m3u8
Run Code Online (Sandbox Code Playgroud)

但是我发现我们可以使用这个问题中提到的正则表达式来解析它: 在Android中匹配正则表达式模式的问题

我没有任何正则表达的想法,所以有人请指导我使用正则表达式解析它.

或者有人可以帮我编写regexp来解析下面的字符串中的BANDWIDTH和RESOLUTION值

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=476416,RESOLUTION=416x234
Run Code Online (Sandbox Code Playgroud)

regex android http-live-streaming m3u8

3
推荐指数
1
解决办法
6892
查看次数

如何使用FFMPEG创建具有恒定持续时间的m3u8播放列表和mpeg-ts块?

我有mp4文件(Big Buck Bunny):
持续时间:00:09:56.50
比特率:2048 kb/s
大小:1280x720
fps:29.97
我在2秒后设置了常量关键帧.
我想为HLS准备这个视频.
我使用它来生成m3u8播放列表并生成ts块:

ffmpeg -i input.mp4 -hls_time 2 out.m3u8
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我不明白它是如何工作的.
我认为这个命令生成298个2秒的块,但它只生成152个不同长度的块(3 - 9秒).
但最奇怪的是它创建了m3u8文件,只有5个文件链接.

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:9
#EXT-X-MEDIA-SEQUENCE:148
#EXTINF:8.341667,
out148.ts
#EXTINF:7.841167,
out149.ts
#EXTINF:0.967633,
out150.ts
#EXTINF:8.341667,
out151.ts
#EXTINF:7.140467,
out152.ts
#EXT-X-ENDLIST
Run Code Online (Sandbox Code Playgroud)

我认为m3u8文件必须包含视频的所有部分.有人可以解释我如何每2秒钟创建298个块并正确填充m3u8文件吗?

ffmpeg video-encoding http-live-streaming m3u8

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

#EXT-X-DISCONTINUITY-SEQUENCE标签如何在HLS m3u8文件中工作

我正在检查#EXT-X-DISCONTINUITY-SEQUENCEHLS的m3u8文件中的标记。(https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.3)有人可以解释它的工作方式吗?

例如,假设如下制作了m3u8文件以进行实时流式传输,两秒钟后segment1.060.ts,file.000.ts也将从列表和#EXT-X-DISCONTINUITY标记中消失。毕竟file.001.ts将成为列表中的第一个媒体段。

在这种状态下,什么样的序列号应该是#EXT-X-MEDIA-SEQUENCE#EXT-X-DISCONTINUITY-SEQUENCE#EXT-X-DISCONTINUITY应该再次放在file.001.ts行的前面?

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-MEDIA-SEQUENCE:60
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:2

#EXTINF:0.933600,
segment1.060.ts

#EXT-X-DISCONTINUITY
#EXTINF:0.966911,
file.000.ts

#EXTINF:1.000489,
file.001.ts
Run Code Online (Sandbox Code Playgroud)

http-live-streaming m3u8

3
推荐指数
1
解决办法
7506
查看次数

从HLS流中提取元数据(m3u8文件)

我有一个要求,我需要从Android中的HLS流中提取元数据.我找到了两个库FFMPEG和VITAMIO.考虑到HLS流媒体在Android上的零碎支持,在阅读了大量更令人困惑的文章之后,我已经完成了上述两个库的进一步研究.我还没有找到一个单独的应用程序,其中提取元数据(定时元数据)已经在Android上完成.

如果在Android上甚至可能,我很困惑.如果是这样,我应该使用哪种方法......帮助我......

android ffmpeg http-live-streaming m3u8 vitamio

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

HTTP Live Streaming (m3u8) I-Frames 位置

HTTP Live Streaming 会话中 I 帧的推荐位置是什么?

我知道,如果我要使用 #EXT-XI-FRAMES-ONLY 标签,那么每个段在段的最开始都恰好包含 1 个 I-Frame。

但是如果我不使用这个标签呢?

如果我严格根据时间长度创建段会怎样?

如果一个片段不是以 I-Frame 开头,玩家是否通常认为他们应该根据前一个片段的最后一个 I-Frame 计算图像?如果是这样,那我为什么还要创建#EXT-XI-FRAMES-ONLY 播放列表?

iframe http-live-streaming m3u8

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

使用 S3 进行 HLS 直播 - 这些假设是否正确?

我想做一个直播。而且,我想使用 HLS。

我知道 HLS 直播流只是一个带有“.m3u8”扩展名的主播放列表文件,其中列出了所有要播放的文件。

但是,对于实时流,由于并非所有文件都可以随时使用,因此它们会在进来时添加。

我现在想使用 S3 来托管这些文件和播放列表文件。

现在,我想更新 S3 中的播放列表文件。但它实际上将替换现有的播放列表文件,而不是仅仅更新它(根据这个答案)。

所以,我假设在文件替换期间不会有死区时间。如果有死区时间,我该如何克服它?这是这样做的方法还是有其他更好的方法来做到这一点。

我正在使用 NodeJS 服务器,仅供参考。

*没有文件时的死区时间。

amazon-s3 live-streaming node.js http-live-streaming m3u8

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

解密使用 AES-128 加密的 M3U8 播放列表,无需 IV

我目前正在构建一个用于下载 M3U8 播放列表的应用程序,但我遇到了一个问题:如果播放列表是用 AES-128 加密的,例如有这样一行:

#EXT-X-KEY:METHOD=AES-128,URI="https://website.com/link.key",IV=0xblablabla

我必须在将它们写入输出文件之前解密这些段,如果存在 IV,则下面的代码对我有用,但如果 IV 属性不存在,则解密会产生错误的结果:

var iv = "parsed iv"; // empty if not present
var key_url = "parsed keyurl";

var AES = new AesManaged()
{
    Mode = CipherMode.CBC,
    Key = await Client.GetByteArrayAsync(key_url)
};

if (!string.IsNullOrEmpty(iv))
    AES.IV = Functions.HexToByte(iv.StartsWith("0x") ? iv.Remove(0, 2) : iv);
else
    AES.IV = new byte[16];

//...

using (FileStream fs = new FileStream("file.ts", FileMode.Create, FileAccess.Write, FileShare.Read))
{
    var data = DownloadSegment(...); // Downloads segment as byte array (encrypted)

    byte[] temp = new …
Run Code Online (Sandbox Code Playgroud)

c# aes http-live-streaming m3u8

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

能否在附加模式下使用 cat 命令组合 .ts 音频文件以获得 .mp3 文件

我有一些.ts文件作为 hls 音频流的一部分。我可以使用该cat命令附加它们并获取 .mp3 文件吗?我很好奇如何从或文件ffmpeg创建 mp3 ,以便我可以在节点服务器中实现它.ts.m3u8

audio ffmpeg audio-streaming http-live-streaming m3u8

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

Asp.Net Core 2.0 不提供 m3u8 等静态文件

我无法访问m3u8文件,但访问css,txt,jpg,js,...(在wwwroot中)没有问题。IIs Mime类型和web.confing和WebHostBuillder.UseWebRoot设置完成了,但问题没有解决。

m3u8 asp.net-core

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