ffmpeg進行視頻切片,生成m3u8

ffmpeg一個視頻音頻處理的工具,很是強大。由于最近做一個視頻網(wǎng)站讓我不得不接觸了下這個工具。簡單記錄下我使用到的地方。

一、首先是安裝

  • windowns平臺
    直接在官網(wǎng)下載最新版本即可。下載地址
  • centos7安裝
#1、安裝EPEL Release
yum install -y epel-release
#2、安裝Nux-Dextop源
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
# 查看repo源是否安裝成功
yum repolist
#3、yum安裝ffmpeg
yum install -y ffmpeg
# 查看版本
ffmpeg -version

二、將其他格式轉換為mp4

html5可直接播放的mp4格式要求視頻編碼為h.264,音頻編碼為aac,在轉換前可以查看下原視頻的編碼格式。

ffprobe 111.flv
Input #0, flv, from '.\111.flv':
Metadata:
  encoder         : Lavf54.6.100
Duration: 00:43:09.28, start: 0.040000, bitrate: 1137 kb/s
  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1024x768 [SAR 1:1 DAR 4:3], 1000 kb/s, 25 fps, 25 tbr, 1k tbn, 50 tbc
  Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s

轉換命令

ffmpeg -i 111.flv -c:v copy -c:a copy out/oo.mp4

命令說明:

  • -i _file -i后面跟帶轉換的文件位置
  • -c:v 等于 -vcodec。目標視頻編碼格式 copy 表示使用以前的格式,轉換為h.264則libx264
  • -c:a 等于 -acodec。目標音頻格式,轉換為aac則libfaac 后 aac
  • -s hd720 目標視頻的分辨率
  • -crf 23 設置質量等級,越高越差,也越費時間
    總結:如果原始視頻的編碼符合h.264 + aac那就直接使用貼出的命令即可,比較快

三、將視頻轉ts切片并生成m3u8播放列表

  • 1、分兩步轉換,效率高
    先將mp4格式的轉換為ts格式,命令如下:
ffmpeg -i out/oo.mp4 -c copy -bsf:v h264_mp4toannexb out/oo.ts

再將完整的ts文件進行切片處理,命令如下:

ffmpeg -i .\pp.ts -c copy -map 0 -f segment -segment_time 8 -segment_list pp.m3u8 pp_%03d.ts

說明:

  • %03d有沒有很像c語言中的格式化,表示三位整數(shù)
  • -segment_time 每個切片的視頻時長,單位s
  • -segment_list m3u8文件輸出位置
  • -f 大概就是格式化方式吧
    注:m3u8中文件路徑是以相對路徑存放的,可以按需修改
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容