歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu下Ffmpeg編譯及實現流播放總結

Ubuntu下Ffmpeg編譯及實現流播放總結

日期:2017/2/28 16:39:04   编辑:Linux教程

研究了一個星期,今天終於將服務器架設起來了.心理舒坦,所以總結一下

我使用的操作系統是:Ubuntu 9.10

我是參考這裡的來進行編譯的插件安裝的,不過有些插件安裝不上,

注意在Ubuntu下如果執行命令make install失敗,則使用sudo make install使用root 權限來執行,因為有些目錄普通用戶不能創建

基本編譯過程和需要安裝的差價包上面博客講的很詳細,網上也有很多教程,

一、安裝編譯所需的工具和庫:

(1)先可以執行命令:

sudo apt-get purge ffmpeg x264 libx264-dev

清除原來的安裝包

(2)然後執行命令:

sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev

二、編譯和安裝x264庫

git clone git://git.videolan.org/x264.git

cd x264

./configure

make

sudo make install

有時候編譯不過去,則可以使用新力德軟件安裝程序來進行安裝,使用方便

三、編譯和裝ffmpeg:

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

cd ffmpeg

./configure –enable-gpl –enable-nonfree –enable-pthreads –enable-libfaac –enable-libfaad –enable-libmp3lame –enable-libtheora –enable-libx264 –enable-libxvid –enable-x11grab –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopencore-amrnb –enable-version3

make

sudo make install

在此我遇到了一個奇怪的問題,編譯是通過了,但是編譯出來的ffmpeg有問題,在進行流媒體解碼時出錯,於是我去官方網站手動下載了ffmpeg源碼包

順利編譯完成後,輸入命令ffserver,ffmpeg,ffplay都會有相應的提示,說明你以經安裝完成,具體安裝在哪裡,一般在/usr/local/bin/下面,也可以在./configure參數指定

接下來,我們通過ffserver,ffmpeg,ffplay,來時間流媒體播放功能

第一步:

ffserver.conf 配置

Port 8090

BindAddress 0.0.0.0

MaxHTTPConnections 2000

MaxClients 1000

MaxBandwidth 1000

CustomLog -

NoDaemon

<Stream testflv>

File "test.flv"

Format flv

</Stream>

<Stream Blue>

File "Blur.mp3"

Format flv

</Stream>

<Feed feed1.ffm>

File /tmp/feed1.ffm

FileMaxSize 2M

ACL allow 127.0.0.1

</Feed>

<Stream mytest>

Feed feed1.ffm

Format flv

</Stream>

<Redirect index.html>

URL http://www.ffmpeg.org/

</Redirect>

參數說明:

我上面創建了三個流,其中Blue,testflv都是直接使用本地文件創建的

<Stream Blue>

File "Blur.mp3"

Format flv

</Stream>

表示創建一個以當前文件所在目錄下的Blur.mp3創建的流,Blue,並將他以flv格式播放

Feed feed1.ffm>

File /tmp/feed1.ffm

FileMaxSize 2M

ACL allow 127.0.0.1

</Feed>

表示:在/tmp/下創建一個緩沖區,feed1.ffm,大小為2M,這個可以自己根據需要修改

ACL allow 127.0.0.1 表示可以訪問的IP

<Stream mytest>

Feed feed1.ffm

Format flv

</Stream>

表示:以緩沖區feed1.ffm 創建的流mytest

其它東西不用管,OK,ffserver.conf配置好後,我們開始啟動ffserver服務器

啟動命令:

打開終端,輸入 ffserver -f ffserver.conf 命令啟動ffserver

這裡注意,你的ffserver.conf路徑,我一般是在當前ffserver.conf所以的文件夾下運行終端的

當啟動成功後,就不用管了,我們另開啟一個終端測試,是否配置成功

輸入:

ffplay http://localhost:8090/Blue

ffplay http://localhost:8090/testflv

如果能正常播放的話,那說明已經配置成功了

現在我們要做的是通過ffmpeg來將,數據字入緩沖區feed1.ffm中

注意,由於我們現在的緩存沖只有2M所以,當緩沖區的內容滿後,他會自動覆蓋

我們打開一個新的終端:

輸入:ffmpeg -i inputfile -an http://localhost:800/feed1.ffm

啟動ffmpeg

inputfile 為輸入文件名,由於要達到電影播放效果,我使用了一個mp4格式的電影,後成,是將數據寫了緩沖區feed1.ffm

如果沒有問題,則會出現轉換數據,一直在轉換,那說明正在轉換了,本人剛開始用svn下載的版本,在此執行就出問題了,後面自己去官方網站下載了一個ffmpeg源碼壓縮包,便運行成功了

OK,現在我們再用ffplay測試一下吧

新開一個終端輸入:ffplay http://localhost:8090/mytest

OK,達到我們想要的效果了。。如果大家在以上出現什麼問題,可以和我交流

Copyright © Linux教程網 All Rights Reserved