标签: http-live-streaming

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
查看次数

来自多个文件的 FFmpeg hls

我正在尝试创建一个包含多个音频流的 HLS 播放列表。我有以下文件:

- videoHD.mp4
- videoSD.mp4
- audioEN.mp4
- audioFR.mp4
- audioIT.mp4
Run Code Online (Sandbox Code Playgroud)

我将如何在ffmpeg命令中将这些全部转换在一起以创建HLS播放列表?

video ffmpeg http-live-streaming

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

如何使用ffmpeg加密AES-128 HLS m3u8播放列表?

我使用ffmpeg -i fighter.mp4 -hls_time 10 stream.m3u8来创建m3u8文件。但是#EXT-X-KEYm3u8文件中没有信息。我应该怎么做才能在HLS播放列表中添加密钥?

ffmpeg aes http-live-streaming

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

Android 是否支持 HLS 自适应比特率流媒体

我正在尝试在我的应用程序中实现自适应比特率流,它会根据连接速度自动切换质量。我怎么能做到这一点。是否有任何第三方库可用于此。默认的 android 视频视图是否支持自适应比特率流?

android http-live-streaming adaptive-bitrate android-videoview

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

如何使用 ffmpeg 创建播放列表/不同的带宽?

我正在尝试从 .mp4 文件中创建一个 hls 流。到目前为止,我可以创建一个清单 + .ts 文件,但我没有 playlist.m3u8 来决定我应该根据用户的带宽为用户提供哪个清单。我怎么做?

这是我当前创建 HLS 流的命令(无播放列表):

ffmpeg -i test.mp4 -codec copy -vbsf h264_mp4toannexb -map 0 -f segment -segment_list out.m3u8 -segment_time 10 out%03d.ts
Run Code Online (Sandbox Code Playgroud)

这创建的是 out.m3u8:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, 
out.ts
#EXTINF:10, 
out.ts
Run Code Online (Sandbox Code Playgroud)

我想创造什么:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=860000
low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=512000
medium.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=160000
high.m3u8
Run Code Online (Sandbox Code Playgroud)

streaming servlets ffmpeg http-live-streaming

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

播放带有视频标签的 m3u8 视频

<video width="352" height="198" controls>
    <source src="video.m3u8" type="application/x-mpegURL">
</video>
Run Code Online (Sandbox Code Playgroud)

此代码适用于我 android 设备上的所有浏览器,但不适用于我计算机上的 Firefox / Chrome / Safari。我需要在所有设备上播放视频。我能做什么?

html streaming http video-streaming http-live-streaming

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

实时播放列表,#EXT-X-TARGETDURATION 和 #EXTINF 必须相等吗?

我有这个 m3u8 文件。#EXT-X-TARGETDURATION为8,第一段#EXTINF为6,当avplayer切换到这个m3u8时,报错如下。

错误域=CoreMediaErrorDomain 代码=-12312 \“媒体输入时间值与 MEDIA-SEQUENCE 477000 的先前播放列表不匹配:8.000000 vs 6.000000\” UserInfo={NSDescription=媒体输入时间值与 MEDIA-SEQUENCE 的先前播放列表不匹配:47700 8.000000 对 6.000000}”

 #EXTM3U
 #EXT-X-MEDIA-SEQUENCE:477000
#EXT-X-ALLOW-CACHE:NO
    #EXT-X-VERSION:2
    #EXT-X-FAXS-CM:URI="xxxxxxxx"
    #EXT-X-KEY:METHOD=xxxxxxx
    #EXT-X-TARGETDURATION:8
    #EXTINF:6,
    477000.ts
    #EXTINF:8,
    477001.ts
    #EXTINF:8,
    477002.ts
    #EXTINF:8,
    477003.ts
    #EXTINF:8,
    477004.ts
    #EXTINF:8,
    477005.ts
    #EXTINF:8,
    477006.ts
Run Code Online (Sandbox Code Playgroud)

问题是在实时播放列表中,每个片段的#EXT-X-TARGETDURATION 和#EXTINF 是否必须相等?!我找不到来自 Apple 的任何文件来定义此规则。在本文档中,https://developer.apple.com/library/ios/technotes/tn2288/_index.html
Lie Playlist 示例,它们都是相同的。

http-live-streaming ios avplayer

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

HLS(Http Live Streaming)与MPEG DASH

我试图找到HLS and DASH两种广泛使用的流格式之间的差异.

通过我的研究,我看了一下展示自适应流媒体特征比较的图像.

我不确定HTML5支持.
MPEG-DASH支持HTML5的唯一流格式
或下面的图片是一种古老的功能比较的?

用于自适应流功能比较的图像

format streaming http-live-streaming mpeg-dash

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

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

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

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

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

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

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

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

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

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

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

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

拆分 mp4 文件与 mp4-dash

在网站上向用户提供视频时,可供选择的选项很少。即 HLS、Smooth streaming、Dash 或 HDS。Dash 似乎是一个更好的选择。看看它是如何工作的,它将文件分成许多部分并流式传输。另一种选择是手动拆分文件。破折号和拆分 mp4 文件有什么区别。

video http-live-streaming html5-video smooth-streaming mpeg-dash

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