如何使用 FFmpeg 生成多分辨率 HLS 进行直播 [关闭]

2023-11-27

请注意,SRS 支持为特定分辨率生成单独的 m3u8 文件。 SRS 是否还支持为多种分辨率和比特率场景生成额外的主 m3u8 文件?

所需的母版 m3u8 示例:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2340800,RESOLUTION=960x540,CODECS=“avc1.4d401f,mp4a.40.2”
index_0.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1170400,RESOLUTION=480x270,CODECS=“avc1.4d4015,mp4a.40.2"
index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=677600,RESOLUTION=480x270,CODECS=“avc1.4d4015,mp4a.40.2”
index_2.m3u8

请使用FFmpeg生成多个HLS:

ffmpeg -f flv -i "rtmp://server/live/livestream" \
  -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 \
  -c:v libx264 -crf 22 -c:a aac -ar 44100 \
  -filter:v:0 scale=w=480:h=360  -maxrate:v:0 600k -b:a:0 500k \
  -filter:v:1 scale=w=640:h=480  -maxrate:v:1 1500k -b:a:1 1000k \
  -filter:v:2 scale=w=1280:h=720 -maxrate:v:2 3000k -b:a:2 2000k \
  -var_stream_map "v:0,a:0,name:360p v:1,a:1,name:480p v:2,a:2,name:720p" \
  -preset fast -hls_list_size 10 -threads 0 -f hls \
  -hls_time 3 -hls_flags independent_segments \
  -master_pl_name "livestream.m3u8" \
  -y "livestream-%v.m3u8"

注意:您应该在一个 FFmpeg 进程中使用过滤器,而不是通过多个 FFmpeg 进程将 RTMP 转换为 HLS。 FFmpeg 保持多个分辨率与 gop 对齐,以允许用户在不同的流之间切换。

由FFmpeg生成的m3u8母版:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:BANDWIDTH=1210000,RESOLUTION=480x360,CODECS="avc1.640015,mp4a.40.2"
livestream-360p.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=2283600,RESOLUTION=640x480,CODECS="avc1.64001e,mp4a.40.2"
livestream-480p.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=3933600,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2"
livestream-720p.m3u8

详细请阅读here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 FFmpeg 生成多分辨率 HLS 进行直播 [关闭] 的相关文章

  • 浏览器访问.m3u8文件

    浏览器播放m3u8文件
  • 将视频流式传输给一位用户并接收来自该用户的音频

    我的要求 我想用我的智能手机向一个人 Larix 流式传输并获取该人的音频 延迟应尽可能低 质量尽可能高 我想将整个事情托管在我的服务器上 最好的方法是什么 我尝试过SRS 质量高 延迟低 但我不知道如何从对方那里获取音频 SRT 也是一种
  • HLS 视频无法在模拟器和真实设备上播放

    我正在开发一个 iOS 应用程序 它可以简单地播放实时流 HLS 视频 我的问题是我已经使用 AVPlayer 和视图控制器来设置游乐场 所有事情都工作正常 视图控制器已启动 播放器也已启动 但流媒体未启动 该流是一种 m3u8 类型 在
  • swift 无法将 .m3u8 文件保存到图库

    我使用下面的方法下载我的视频并将其保存到图库 使用 mp4 可以正常工作 但是当更改为 m3u8 时 它总是失败 func downloadVideoLinkAndCreateAsset videoLink String fileName
  • AVPlayer 无法从本地文件播放 m3u8

    我正在尝试让 AVPlayer 播放本地文件的 m3u8 播放列表 我使用 Apple 的示例播放列表之一将其范围缩小为一个简单的测试用例 https tungsten aaplimg com VOD bipbop adv fmp4 exa
  • HLS 流无法在 Apple 设备上运行

    我有一个实时 RTSP 流 我已设法通过 VLC 将其转码为 HLS 现在它可以在 Android 和桌面浏览器上完美运行 通过 Flash 但在 Apple 上不行 我可以在我的虚拟机上的 iPad 和桌面 Safari 上进行测试 我可
  • 解密使用 AES-128 加密的 M3U8 播放列表,无需 IV

    我目前正在构建一个用于下载 M3U8 播放列表的应用程序 但我遇到了一个问题 如果播放列表使用 AES 128 加密 例如有这样一行 EXT X KEY METHOD AES 128 URI https website com link k
  • 尝试在 iOS 中使用 AVAssetDownloadURLSession 下载 m3u8 视频时出现错误

    尝试下载 m3u8 视频文件 http devimages apple com iphone samples bipbop bipbopall m3u8 使用 AVAssetDownloadURLSession 当我在 Xcode 中运行代
  • AVPlayer 播放 m3u8 流时如何捕获图像?

    I use AVPlayer玩一个m3u8文件 我想在这些代码中捕获图像 AVAssetImageGenerator gen AVAssetImageGenerator alloc initWithAsset self player cur
  • 如何将视频从 iOS 设备发送到服务器?

    我必须将视频从 iPhone 实时发送到服务器 我创建捕获会话并使用 AVCaptureMovieFileOutput NSError error nil captureSession AVCaptureSession alloc init
  • Android 音频 m3u8 流 - 如何

    正如标题 如何在没有 vitamio 的情况下在 Android 上流式传输 m3u8 音频 在 Android 2 3 上 我发现某些应用程序可以传输我的链接像 VLC 或 aqua Player 但我无法设置 mMediaPlayer
  • 在 iPhone/iPad 上保存 HLS 流

    我有一个 iPhone iPad 应用程序 可以播放电视频道的 HTTP 直播 我想添加录制功能以将直播流保存在设备上 就像电视录像机一样 我不知道是否可能 但我认为我有两种方法来录制流 保存屏幕上显示的输出流 但我不知道该怎么做 打开 m
  • AVPlayer 抛出:“内部错误:重新启动太早”

    我正在观察 AVPlayer 的 KVO AVPlayerItemNewErrorLogEntryNotification 发现以下错误 errorStatusCode 12645 errorDomain CoreMediaErrorDom
  • iOS 上的 HTML5 MSE

    我正在尝试使用 Chrome Mobile 让 hls js 在 iOS 上工作 但我注意到 Chrome Mobile 不支持 MediaSourceExtensions 这绝对是必要的 iOS 是否支持 MSE Chrome 移动版 F
  • 检索比特率时无法使用 HLS 获取 AVAsset 的跟踪

    我在我的应用程序中使用 HLS 流 并且使用 AVPlayer 现在我想使用 AVAsset 获取视频轨道的比特率 虽然我添加了观察者和其他东西 但我的轨迹数组始终为空 我是否走在正确的轨道上或遗漏了什么 HLS 是自适应的 因此 比特率可
  • VideoView 对于 HLS 来说太早触发 OnPreparedListener

    我想在用户等待 VideoView 开始播放 HLS 时向用户显示一些 ProgressDialog 我尝试为此使用 OnPreparedListener 但他提前触发 在玩家下载 m3u8 文件之后 而不是在视频开始时 VideoView
  • 如何在 android 中从 Http 或 RTSP Url 流式传输视频

    我想在 android 上播放 Http 和 Rtsp 的视频 目前我正在尝试使用 http 链接 但是当我的活动开始时 它只是开始播放带有空白黑屏的音频 没有视频显示 我在下面发布了我的代码 感谢您提前提供的任何帮助 如果有人可以提供一个
  • 如何在 Adob​​e Media Server 中允许来自 Javascript 的 CORS 请求

    我有一个 html 页面 从 javascript 调用 HLS 收到标头 allow control allow origin 的 CORS 错误 我正在使用 Adob e Media Server 4 5 我如何允许来自 javascr
  • 播放 video.js ustream m3u8 文件流

    我尝试在网页中播放带有 video js 的 m3u8 文件流 但我无法做到这一点 我不知道错误在哪里
  • HTTP实时音频流服务器

    作为概念验证 我需要创建一个 HTTP 服务器 该服务器在 GET 请求时应启动连续的非编码 非压缩音频数据流 WAV PCM16 我们假设音频数据是 4096 个随机生成的单声道音频样本块 采样率为 44 1kHz 我应该在 HTTP 响

随机推荐

  • 在客户端定义传输类型

    我需要对 IE 使用 jsonp polling 对 Firefox 使用 xhr polling 所以我 尝试在客户端定义传输类型 如下所示 if Firefox s d d test navigator userAgent test f
  • 在 T 和 UnsafeCell 之间转换是否安全且定义的行为?

    A 最近的问题正在寻找构建自我参照结构的能力 在讨论该问题的可能答案时 一个可能的答案涉及使用UnsafeCell用于内部可变性 然后通过 丢弃 可变性transmute 这是这种想法的实际应用的一个小例子 我对这个例子本身并不很感兴趣 但
  • 查找字符串是否混合大小写的最有效方法

    假设我有很长的字符串 并且我想查看某列是 allLower allUpper 还是混合大小写 例如下面的列 text hello New items iTem12 3nXy 文本将是mixedCase 确定这一点的简单算法可能是 int i
  • WPF 应用程序中的图像显示比在外部查看器中查看时要小

    当我在 WPF 应用程序中显示 JPEG 使用以下代码 时 它显示的大小明显小于在 Windows 图片查看器中以实际大小打开 JPEG 的情况 我在运行时深入研究了 ImageSource 的属性 我的图像具有 DPI 为 219 高度为
  • 如何在 pyinstaller 中添加静态(html、css、js 等)文件以创建独立的 exe 文件?

    我在用着QtWebEngineWidgets QtWebChannel创建 PyQt5 应用程序 它使用 HTML CSS JavaScript 当我们以一般方式运行时 即运行正常 python main py 导入 HTML 如下 cur
  • 如何创建一个支持sql转换的方法?

    我想使用我在查询中创建的方法 因为我需要实现一种特殊类型的过滤器 return manager Clients SelectAll Where cli gt cli Name SatisfyFilter filter Name cli La
  • 录制的视频方向错误

    我在用着mCamera setDisplayOrientation 90 旋转相机 这成功地改变了相机预览 但没有改变实际的 相机 因此录制的视频仍然是横向的 他们有办法做到这一点吗 这可能对你有帮助 mMediaRecorder setO
  • 前向填充 python pandas 数据框中除最后一个值之外的所有值

    我在 pandas 中有一个数据框 其中有几列我想转发填充值 目前我正在做 columns a b c for column in columns df column fillna method ffill inplace True 但是由
  • Timepicker Updatesourcetrigger=propertychanged 不更改值

    我在 Windows 窗体中托管 WPF 用户控件 在 wpf 用户控件中 我使用 wpfToolkit extended 中的时间选择器 如果我使用向上或向下键或仅在文本字段中输入时间 则尽管我使用的是 Updatesourcetrigg
  • python - 增加数组大小并将新元素初始化为零

    我有一个大小为 2 x 2 的数组 我想将大小更改为 3 x 4 A 1 2 2 3 A new 1 2 0 0 2 3 0 0 0 0 0 0 我尝试了 3 个形状 但没有成功 并且追加只能追加行 不能追加列 我不想遍历每一行来添加列 有
  • 如何使用 asp.net 将 .docx 转换为 html?

    Word 2007 将其文档保存为 docx 格式 这实际上是一个 zip 文件 其中包含大量内容 包括带有文档的 xml 文件 我希望能够获取 docx 文件并将其放入我的 asp net Web 应用程序中的文件夹中 并让代码打开 do
  • 检测两个div是否重叠[重复]

    这个问题在这里已经有答案了 可能的重复 jquery如何检测两个div是否接触 我花了很多时间试图弄清楚如何检测两个 div 是否重叠 我尝试了 gamequery 插件并像这样使用它 checkform collision checkfo
  • Android 上运行时的重复视图

    我已经为活动创建了布局文件 在此布局中 我创建了一个带有文本视图和编辑文本的 LinearLayout 现在我想创建额外的 LinearLayout 其外观和包含与原始 LinearLayout 完全相同的视图 但具有不同的文本 我还想在运
  • 批量更新Mongodb中匹配子文档的数组

    我正在 Mongodb 3 6 上运行 以下是我的文档的结构 其中存储产品列表的月度费率信息 id 12345 class com example ProductRates rates productId NumberInt 1234 ra
  • 如何在Qt中发出跨线程信号?

    Qt 文档指出信号和槽可以direct queued and auto 它还指出 如果拥有插槽的对象 生活 在与拥有信号的对象不同的线程中 则发出此类信号将像发布消息一样 信号发出将立即返回 并且将在目标线程的事件循环中调用插槽方法 不幸的
  • 在设备上记录数据并检索日志

    在 Xcode 中进行调试构建时 无论我使用的是模拟器还是实际设备 NSLog printf fprintf assert 和 NSAssert 语句都会出现在控制台上 如果我现在在设备上运行一个发布版本 假设我发送了一个测试飞行版本并在我
  • 有没有办法在 jQuery 中获得类似 JSONP 的 XML 获取?

    对于我正在开发的 Web 服务 我希望我的嵌入式代码 在客户端站点上 从驻留在我的域中的服务器脚本中获取 XML 文件 由于这是一个跨域请求 我想使用 JSONP 因为它似乎是此类 API 的事实上的标准 然而 对于我的应用程序来说 使用
  • Python OpenCV 从字节字符串加载图像

    我正在尝试像 PHP 函数一样从字符串加载图像imagecreatefromstring 我怎样才能做到这一点 我有 MySQL blob 字段图像 我在用着MySQLdb并且不想创建临时文件来处理 PyOpenCV 中的图像 注意 需要
  • 带选择列表的 Symfony 2 表单

    我如何使用 Symfony 2 中数据库表中的值创建选择列表 我有 2 个实体 Student and 课堂具有多对一关系 我需要创建一个包含以下字段的表单 name surname age 课堂 从可用课程中选择列表 In my 学生表格
  • 如何使用 FFmpeg 生成多分辨率 HLS 进行直播 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 请注意 SRS 支持为特定分辨率生成单独的 m3u8 文件 SRS 是否还支持为多种分辨率和比特率场景生成额外的主 m3u8 文件 所需的母版 m3u8 示例 EXTM3U EXT