使用FFmpeg进行HLS打包——FFmpeg简单学

翻译、编辑:Alex

技术审校:赵军

本文来自OTTVerse,作者为Krishna Rao Vijayanagar。

图片

▲扫描图中二维码了解音视频技术大会更多信息▲

Easy-Tech #023#

在本文中,我们将学习使用FFmpeg进行HLS打包。使用FFmpeg的好处在于:你可以在不离开命令行的情况下,执行提取视频、调整视频尺寸、转码、打包以及传输视频的所有操作。

我们首先看一下为VOD(点播)创建HLS打包的所有步骤,然后再来了解HLS实时流的打包。

如果你想了解HLS播放列表的更多信息,可以访问我们的m3u8文件合集:https://ottverse.com/free-hls-m3u8-test-urls/ ,查看使用不同用例的不同厂商的示例。如果你刚刚接触HLS,请阅读我们之前的文章:什么是HLS(HTTP Live Streaming)? 和 理解ABR及其工作原理

事不宜迟,让我们开始吧!

使用FFmpeg进行HLS打包的基础步骤

好,现在让我们看下使用HLS打包点播文件的基础步骤:

  1. 从磁盘读取输入视频

  2. 将视频缩放/调整(scale/resize)为所需的多种分辨率版本

  3. 将每个缩放后的视频转码到所需码率

  4. 将音频转码到所需码率

  5. 将视频与音频组合,然后打包每一个音、视频组合,再创建各TS视频切片和播放列表(playlist)

  6. 创建一个主播放列表(master playlist),用于指向每个变体(variant)

现在,让我们一步一步来解决。

FFmpeg将视频调整为多种分辨率版本

第一步和第二步包括从磁盘中读取视频,然后将其调整为多种分辨率。上述操作仅需一个命令,如下所示:

ffmpeg -i brooklynsfinest_clip_1080p.mp4 \
-filter_complex \
"[0:v]split=3[v1][v2][v3];\
[v1]copy[v1out];\
[v2]scale=w=1280:h=720[v2out];\
[v3]scale=w=640:h=360[v3out]"

[0:v]指输入文件的第一个视频流。在我们的例子中,只有一个视频流,它被分成3个输出[v1]、[v2]、[v3]。它们每一个都作为FFmpeg缩放函数的输入,该缩放函数接受一个高度和宽度数值用于执行缩放。

这里,我们将输入视频调整为1080p、720p和360p。

这里的[v1out]、[v2out]、[v3out]是包含缩放过程的输出变量。注意,这里我们假设缩放过程会保留长宽比(aspect ratio

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值