環(huán)境:CentOS/Linux
FFmpeg官網(wǎng):http://www.ffmpeg.org
操作軟件: SSH Shell
由于MP4播放時加載慢,嘗試將其轉(zhuǎn)換為m3u8(ts)格式播放, 服務器是騰訊云購買的, 使用FFmpeg最好不過了,轉(zhuǎn)換速度基本在50M/s
FFmpeg 4.x安裝
將安裝到目錄/usr/local/下, 并創(chuàng)建ffmpeg文件夾
mkdir /usr/local/ffmpeg
進入下載資源管理文件夾:
cd /usr/local/source
下載當前最新版本ffmpeg-4.0.2
wget http://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2
解壓tar.bz2文件到當前文件夾:(xxx.tar.gz格式通常使用 tar -xzvf
)
tar jxvf ffmpeg-4.0.2.tar.bz2
設(shè)置ffmpeg文件夾權(quán)限可修改(如果需要的話):
chmod -R 777 /tmp/bihu
移動解壓后文件夾內(nèi)的所有文件到指定安裝目錄下(也可以直接解壓到該目錄下):
mv ffmpeg-4.0.2/* /usr/local/ffmpeg/
進入安裝目錄:
cd /usr/local/ffmpeg/
接下來就是安裝相關(guān)操作, ffmpeg的編譯需要先安裝yasm, 如果沒有先安裝,已安裝跳下一步(任意目錄下執(zhí)行該命令):
yum install yasm
開始編譯,安裝:
(1)檢查環(huán)境變量
及配置編譯選項
./configure
(2)然后將[源代碼
]編譯成[二進制文件
]
(時間較長,耐心等待)
make
安裝到當前目錄下:將make編譯出來的的文件安裝到指定的位置
make install
如果沒有報錯的話:
查看版本:
ffmpeg
返回:
ffmpeg version 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
configuration:
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
視頻轉(zhuǎn)碼
安裝成功以后,下面體驗一下如何做視頻轉(zhuǎn)碼:
(1)將MP4轉(zhuǎn)換為ts格式文件(單個ts)
轉(zhuǎn)換命令格式:
ffmpeg -y -i 待轉(zhuǎn)換mp4文件路徑 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 目標ts文件
比如: 在/tmp/ 目錄下的test.mp4文件, 轉(zhuǎn)換成test.ts格式
ffmpeg -y -i /tmp/test.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb /tm
p/test.ts
如果是在當前目錄下:
ffmpeg -y -i test.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb test.ts
(2)將ts文件進行切割,轉(zhuǎn)換為m3u8
轉(zhuǎn)換命令格式:[1 待轉(zhuǎn)換ts文件, 2 單個切片時長(0-60s), 3 目標ts切片文件]
ffmpeg -i 待轉(zhuǎn)換ts文件路徑 -c copy -map 0 -f segment -segment_list 目標m3u8文件 -segment_time 單個切片時長 目標ts切片文件名稱
比如:
當前目錄/tmp/test/下有一個test.ts文件, 一個video文件夾
|tmp
|--test
|----test.ts
|----video
需求:
將轉(zhuǎn)換好的m3u8文件存放到video文件夾下, 命名index.m3u8 ,
切片命名前綴nxb加長度四位數(shù)字形式:nxb-0001.ts ,nxb-0002.ts,nxb-0003.ts ...
單個切片時長2s
操作步驟:
進入操作目錄:/tmp/test/
cd /tmp/test/
設(shè)置文件夾讀寫權(quán)限:
chmod -R 777 video
轉(zhuǎn)換:
ffmpeg -i test.ts -c copy -map 0 -f segment -segment_list video/in
dex.m3u8 -segment_time 2 video/nxb-%04d.ts
轉(zhuǎn)換成功后目錄:直播播放xx/video/index.m3u8
|tmp
|--test
|----test.ts
|----video
|------nxb-0001.ts ,nxb-0002.ts,nxb-0003.ts ...
|------index.m3u8