Centos搭建FFMPEG環(huán)境實(shí)現(xiàn)MP4格式轉(zhuǎn)m3u8格式

一僚祷、實(shí)驗(yàn)環(huán)境:centOS

二酷师、步驟

1、使用yum安裝ffmpeg的依賴文件

此步驟一般不會有什么問題惜浅,就算以前安裝過下面的某些軟件瘫辩,也不會重復(fù)安裝

yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel -y

2、安裝ffmpeg的功能模塊

下面這些功能模塊是可以選擇的赡矢,當(dāng)需要ffmpeg實(shí)現(xiàn)這些功能時杭朱,就可以選擇安裝或者不安裝,因?yàn)槲倚枰獙?shí)現(xiàn)的是mp4轉(zhuǎn)m3u8格式功能吹散,必須增加libx264模塊

Yasm :yasm是x264和ffmpeg必須要依賴的模塊
cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
make distclean
libx264:
cd ~/ffmpeg_sources
git clone --depth 1 git://git.videolan.org/x264
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
make distclean
libfdk_aac
cd ~/ffmpeg_sources
git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
libmp3lame
cd ~/ffmpeg_sources
curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install
make distclean
libopus
cd ~/ffmpeg_sources
git clone git://git.opus-codec.org/opus.git
cd opus
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
libogg
cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
tar xzvf libogg-1.3.2.tar.gz
cd libogg-1.3.2
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
libvorbis
cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
tar xzvf libvorbis-1.3.4.tar.gz
cd libvorbis-1.3.4
LDFLAGS="-L$HOME/ffmeg_build/lib" CPPFLAGS="-I$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
FFmpeg

下面這個步驟是官網(wǎng)給出來的弧械,執(zhí)行下面這個步驟的時候出了個問題,用git命令去拿ffmpeg源碼的時候拿不到空民,可能是跟網(wǎng)絡(luò)問題刃唐,故而我是直接下載最新的版本來用的,我下載的是2.8.4界轩,其他步驟都是一樣

cd ~/ffmpeg_sources
git clone --depth 1 http://source.ffmpeg.org/git/ffmpeg.git  
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libx264
make
make install
make distclean
hash -r

到這里画饥,ffmpeg就編譯安裝完成了。

三浊猾、測試

我在/tmp/mp4/目錄下面放了一個 test.mp4文件抖甘,執(zhí)行下面命令

cd /tmp/mp4/
ffmpeg -i test.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 test.m3u8

成功執(zhí)行后的顯示

[root@dev1 mp4]# ffmpeg -i test.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 test.m3u8        
ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16)
  configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libx264
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2036-02-06 06:28:16
    encoder         : HandBrake 0.10.2 2015060900
  Duration: 00:16:05.32, start: 0.000000, bitrate: 465 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/bt709), 640x360, 299 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2036-02-06 06:28:16
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time   : 2036-02-06 06:28:16
      handler_name    : Stereo
[libx264 @ 0x31f5020] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x31f5020] profile High, level 3.0
Output #0, hls, to 'test.m3u8':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.40.101
    Stream #0:0(und): Video: h264 (libx264), yuv420p, 640x360, q=-1--1, 25 fps, 90k tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2036-02-06 06:28:16
      handler_name    : VideoHandler
      encoder         : Lavc56.60.100 libx264
    Stream #0:1(und): Audio: aac, 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2036-02-06 06:28:16
      handler_name    : Stereo
      encoder         : Lavc56.60.100 aac
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
frame=24127 fps= 46 q=28.0 Lsize=N/A time=00:16:05.32 bitrate=N/A    
video:25976kB audio:15628kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x31f5020] frame I:137   Avg QP:16.54  size: 33746
[libx264 @ 0x31f5020] frame P:9202  Avg QP:19.82  size:  1882
[libx264 @ 0x31f5020] frame B:14788 Avg QP:24.10  size:   315
[libx264 @ 0x31f5020] consecutive B-frames: 17.4%  1.8%  2.1% 78.7%
[libx264 @ 0x31f5020] mb I  I16..4: 15.5% 23.9% 60.6%
[libx264 @ 0x31f5020] mb P  I16..4:  1.5%  3.4%  0.5%  P16..4: 19.5%  5.3%  3.5%  0.0%  0.0%    skip:66.4%
[libx264 @ 0x31f5020] mb B  I16..4:  0.1%  0.2%  0.0%  B16..8:  9.8%  1.3%  0.2%  direct: 0.5%  skip:87.8%  L0:42.2% L1:50.1% BI: 7.7%
[libx264 @ 0x31f5020] 8x8 transform intra:54.7% inter:66.4%
[libx264 @ 0x31f5020] coded y,uvDC,uvAC intra: 38.6% 62.1% 31.4% inter: 3.6% 6.4% 1.0%
[libx264 @ 0x31f5020] i16 v,h,dc,p: 29% 36% 17% 18%
[libx264 @ 0x31f5020] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 20% 34%  2%  3%  4%  3%  3%  3%
[libx264 @ 0x31f5020] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 25% 14%  5%  6%  6%  6%  5%  6%
[libx264 @ 0x31f5020] i8c dc,h,v,p: 46% 27% 21%  7%
[libx264 @ 0x31f5020] Weighted P-Frames: Y:1.1% UV:0.8%
[libx264 @ 0x31f5020] ref P L0: 75.2% 10.1% 10.2%  4.5%  0.0%
[libx264 @ 0x31f5020] ref B L0: 89.2%  8.6%  2.2%
[libx264 @ 0x31f5020] ref B L1: 96.1%  3.9%
[libx264 @ 0x31f5020] kb/s:220.50

參考文章

FFMPEG官網(wǎng)文檔
CSDN參考文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市葫慎,隨后出現(xiàn)的幾起案子衔彻,更是在濱河造成了極大的恐慌薇宠,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艰额,死亡現(xiàn)場離奇詭異澄港,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)柄沮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門回梧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祖搓,你說我怎么就攤上這事狱意。” “怎么了棕硫?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵髓涯,是天一觀的道長。 經(jīng)常有香客問我哈扮,道長,這世上最難降的妖魔是什么蚓再? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任滑肉,我火速辦了婚禮,結(jié)果婚禮上摘仅,老公的妹妹穿的比我還像新娘靶庙。我一直安慰自己,他們只是感情好娃属,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布六荒。 她就那樣靜靜地躺著,像睡著了一般矾端。 火紅的嫁衣襯著肌膚如雪掏击。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天秩铆,我揣著相機(jī)與錄音砚亭,去河邊找鬼。 笑死殴玛,一個胖子當(dāng)著我的面吹牛捅膘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滚粟,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼寻仗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凡壤?” 一聲冷哼從身側(cè)響起署尤,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蔬咬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沐寺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體林艘,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年混坞,在試婚紗的時候發(fā)現(xiàn)自己被綠了狐援。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡究孕,死狀恐怖啥酱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厨诸,我是刑警寧澤镶殷,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布艰躺,位于F島的核電站熏矿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏幔托。R本人自食惡果不足惜颗管,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一陷遮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧垦江,春花似錦帽馋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至衩藤,卻和暖如春吧慢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背慷彤。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工娄蔼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人底哗。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓岁诉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跋选。 傳聞我的和親對象是個殘疾皇子涕癣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容