前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?

如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?

作者头像
EasyNVR
发布2020-07-23 16:33:24
2K0
发布2020-07-23 16:33:24
举报
文章被收录于专栏:EasyNVREasyNVR

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。在音视频开发过程中,经常需要使用 FFmpeg 将原先的一个单视频文件转换为多个HLS 流文件,用于视频直播和点播,当然我们视频直播点播平台EasyDSS也会使用FFmpeg作为能力程序,当需要将视频流转化为HLS 流时,我们就可以通过FFmpeg来进行转换。

通过互联网直播点播平台EasyDSS播放的单视频文件一般有多种格式,比如mp4、mkv等封装好的视频格式。HLS 流文件由 m3u8 文件和视频 TS 文件组成,如下图所示:

以下命令可以将 input.mp4 文件转换为 output.m3u8 格式的视频流文件。

代码语言:javascript
复制
ffmpeg.exe -fflags +genpts -hide_banner -i input.mp4 -vcodec libx264 -acodec copy -strict -2 -f hls -hls_time 8 -hls_list_size 0 output.m3u8

命令中-vcodec libx264 代表转码后的文件视频编码为 h264 编码,-acodec copy 代表转码后的文件音频编码直接采用 input.mp4 内部原有的音频编码。

如果计算机中存在英伟达显卡,对于以上参数还可以继续优化,将 libx264 修改为 h264_nvenc,即可加快转码速度。

代码语言:javascript
复制
ffmpeg.exe -fflags +genpts -hide_banner -i input.mp4 -vcodec h264_nvenc -acodec copy -strict -2 -f hls -hls_time 8 -hls_list_size 0 output.m3u8

libx264 参数为仅使用 cpu 的能力进行视频转码,h264_nvenc 调用了显卡的程序进行转码,速度更快。

如果输入的视频文件,本身的视频编码为 h264 编码,可以再次优化以上程序。使用以下程序可以查看 input.mp4 文件的视频和音频编码。

代码语言:javascript
复制
ffmpeg.exe -i input.mp4                                                            

以上第一个红色框中,代表视频编码为 h264 编码,可以使用以下代码转码,加快转码速度。

代码语言:javascript
复制
ffmpeg.exe -fflags +genpts -hide_banner -i input.mp4 -vcodec copy -acodec copy -strict -2 -f hls -hls_time 8 -hls_list_size 0 output.m3u8
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云点播
面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档