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_listm3u8文件輸出位置 -
-f大概就是格式化方式吧
注:m3u8中文件路徑是以相對路徑存放的,可以按需修改