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

_本文原题:如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?
FFmpeg是一套可以用来记录、转换数字音频、视频 , 并能将其转化为流的开源计算机程序 。 在音视频开发过程中 , 经常需要使用FFmpeg将原先的一个单视频文件转换为多个HLS流文件 , 用于视频直播和点播 , 当然我们视频直播点播平台EasyDSS也会使用FFmpeg作为能力程序 , 当需要将视频流转化为HLS流时 , 我们就可以通过FFmpeg来进行转换 。
EasyDSS 如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?
文章图片
通过互联网直播点播平台EasyDSS播放的单视频文件一般有多种格式 , 比如mp4、mkv等封装好的视频格式 。 HLS流文件由m3u8文件和视频TS文件组成 , 如下图所示:
【EasyDSS 如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?】
EasyDSS 如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?
文章图片
以下命令可以将input.mp4文件转换为output.m3u8格式的视频流文件 。
ffmpeg.exe-fflags+genpts-hide_banner-iinput.mp4-vcodeclibx264-acodeccopy-strict-2-fhls-hls_time8-hls_list_size0output.m3u8命令中-vcodeclibx264代表转码后的文件视频编码为h264编码 , -acodeccopy代表转码后的文件音频编码直接采用input.mp4内部原有的音频编码 。
如果计算机中存在英伟达显卡 , 对于以上参数还可以继续优化 , 将libx264修改为h264_nvenc , 即可加快转码速度 。
ffmpeg.exe-fflags+genpts-hide_banner-iinput.mp4-vcodech264_nvenc-acodeccopy-strict-2-fhls-hls_time8-hls_list_size0output.m3u8libx264参数为仅使用cpu的能力进行视频转码 , h264_nvenc调用了显卡的程序进行转码 , 速度更快 。
如果输入的视频文件 , 本身的视频编码为h264编码 , 可以再次优化以上程序 。 使用以下程序可以查看input.mp4文件的视频和音频编码 。
ffmpeg.exe-iinput.mp4
EasyDSS 如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?
文章图片
以上第一个红色框中 , 代表视频编码为h264编码 , 可以使用以下代码转码 , 加快转码速度 。
ffmpeg.exe-fflags+genpts-hide_banner-iinput.mp4-vcodeccopy-acodeccopy-strict-2-fhls-hls_time8-hls_list_size0output.m3u8
EasyDSS 如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?
文章图片


    推荐阅读