zoukankan      html  css  js  c++  java
  • 如何使用FFmpeg将互联网直播点播平台内直播视频流转化为HLS流?

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

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

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

    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,即可加快转码速度。

    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 文件的视频和音频编码。

    ffmpeg.exe -i input.mp4                                                            
    

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

    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
    

  • 相关阅读:
    623. Add One Row to Tree 将一行添加到树中
    771. Jewels and Stones 珠宝和石头
    216. Combination Sum III 组合总数三
    384. Shuffle an Array 随机播放一个数组
    382. Linked List Random Node 链接列表随机节点
    向github项目push代码后,Jenkins实现其自动构建
    centos下安装Jenkins
    python提取批量文件内的指定内容
    批处理实现:批量为文件添加注释
    python抓取每期双色球中奖号码,用于分析
  • 原文地址:https://www.cnblogs.com/easydss/p/13070586.html
Copyright © 2011-2022 走看看