1. 程式人生 > >linux下編譯支援librtmp、libx264、libfaac的ffmpeg

linux下編譯支援librtmp、libx264、libfaac的ffmpeg

下載原始碼

編譯

1. librtmp

cd rtmpdump
make
make install

2. yasm

cd yasm
./configure --prefix=/usr/local/yasm
make
make install

3. libx264

cd x264
./configure --prefix=/usr/local/x264 --enable-shared --enable-static --enable-yasm
make
make install

4. libfaac

apt-get install libfacc-dev

5. ffmpeg

cd ffmpeg
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib
make
make install

可能出現的問題

1. libx264 not found等類似的庫找不到

  1. –extra-cflags=-I 和 –extra-ldflags 手動指定標頭檔案和庫路徑
  2. 將使用到的庫路徑新增至PATH中

    vim /etc/profile  //檔案末尾加入下面內容
    
    export PATH=/usr/local/bin:$PATH
    export PATH=/usr/local/yasm/bin:$PATH
    export PATH=/usr/local/yasm/lib:$PATH
    export PATH=/usr/local/x264/bin:$PATH
    export PATH=/usr/local/x264/include:$PATH
    export PATH=/usr/local/x264/lib:$PATH
    export PATH=/usr/local/sbin:$PATH
    export PATH=/usr/local/bin:$PATH
    export
    PATH=/usr/sbin:$PATH export PATH=/sbin:$PATH export PATH=/usr/local/lib:$PATH //儲存退出 source /etc/profile ldconfig

2. error while loading shared libraries: libx264.so: cannot open shared object file: No such file

    vim /etc/ld.so.conf
    ...
    /usr/local/lib
    /usr/local/x264/lib //新增x264庫路徑,新增完儲存退出
    ldconfig

測試

ffmpeg -v //檢視ffmpeg版本
ffmepg    //測試ffmpeg執行是否缺少庫引用
ffmpeg -i 'rtmp://192.168.1.12/live/livestream live=1' -vcodec copy -acodec copy -f flv -y rtmp://192.168.1.12/live/livestream1 //測試ffmpeg是否可以使用librtmp轉rtmp流

相關推薦

linux編譯支援librtmplibx264libfaac的ffmpeg

下載原始碼 編譯 1. librtmp cd rtmpdump make make install 2. yasm cd yasm ./configure --prefix=/usr/local/yasm make make ins

Linux編譯燒寫RT-Rhread,基於STM32微控制器(二)

上一篇文章主要描述了Linux安裝JLink驅動的過程,由於要關心國足的比賽停了一天,今天國足終於不出意外的輸給勒伊朗,所以工科小屌又來寫部落格了。 PC:Ubuntu14(32位),開發板STM32F103RE,JLink V8,RT_Thread V2.0 既然JLIn

linux編譯連線及執行時環境變數設定(boost庫為例)

以boost庫的存放目錄/usr/boost為例, 開啟/etc/profile, 追加以下內容(前兩行為編譯時路徑): export CPLUS_INCLUDE_PATH=/usr/boost/include:$CPLUS_INCLUDE_PATH export LIB

linux編譯bibtex生成pdf檔案

Original url:  https://www.cnblogs.com/cfsmile/p/4912226.html實驗:在linux環境下,編譯(英文)*.bib和*.tex檔案,生成pdf檔案。環境:fedora 20(uname -a : Linux localhost.localdomain 3

Linux編譯多個不同目錄的檔案以及靜態庫動態庫的使用

先看兩篇博文,作為基礎知識。如果對C/C++編譯連結過程都瞭解的話,可以跳過不看。一、  編譯不同目錄下的多個檔案各個檔案的佈局如下:       head.h檔案的程式碼:#ifndef  HEAD_H#define  HEAD_Hint add(int a, int b);  #endif  /*HEAD

Linux查看/修改系統時區時間

英國倫敦 sha 硬件時間 創建 com rec shanghai asi deb 一、查看和修改Linux的時區 1. 查看當前時區 命令 : "date -R" 2. 修改設置Linux服務器時區 方法 A 命令 : "tzselect" 方法 B 僅限於RedHat

linux查看機器的CPU內存信息

linux查看cpu信息Linux下如何查看版本信息, 包括位數和多核信息,今天我們就來一起看看linux 查看版本信息以及查看CPU內核信息、CPU具體型號等等,整個CPU信息一目了然。相信不會讓大家失望。# uname -aLinux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr

Linux創建和刪除軟硬鏈接 可臨時處理空間不足

clas 就會 blog file 兩種 而是 也有 符號連接 總計 在Linux系統中,內核為每一個新創建的文件分配一個Inode(索引結點),每個文件都有一個惟一的inode號。文件屬性保存在索引結點裏,在訪問文件時,索引結點被復制到內存在,從而實

轉載:Linux查看/修改系統時區時間

div 系統 啟動 localtime ive hctosys red 亞洲 命令 一、查看和修改Linux的時區 1. 查看當前時區 命令 : "date -R" 2. 修改設置Linux服務器時區 方法 A 命令 : "tzselect" 方法 B 僅限於RedHat

linux創建和刪除軟硬鏈接

在linux下創建和刪除軟、硬鏈接說明:在安裝Mysql時,采用軟鏈接的方式來訪問Mysql安裝包,這樣可以避免後期升級,而且不方便知曉其版本,軟鏈接和硬鏈接操作如下 來源地址:https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/05/2199

linux查看物理CPU個數核數邏輯CPU個數

相同 查看 red sort red hat wc -l 詳細 dmidecode processor cat /proc/cpuinfo中的信息processor 邏輯處理器的id。physical id 物理封裝的處理器的id。core id

linux URL中 UTF-8編碼GB2312編碼與漢字之間的轉換

下面是UTF-8編碼的轉換程式碼 #include <string.h> #include <stdio.h> #include <stdlib.h> /* 16進位制字元表 */ static const char c2x_table[] = "0

linux獲取本機IPv6地址字首閘道器

獲取本機IPv6資訊命令:cat /proc/net/if_inet6 [email protected]:/home/user1/# cat /proc/net/if_inet6 fe80000000000000922b34fffe4e70f4 02 40 20 80 et

EngineerCMS在linux部署,並採用dockeronlyoffice實現文件協作

等了好久,這次終於下決心在區域網部署了linux系統,並安裝docker和load了onlyoffice,利用engineercms進行資料管理和文件協作。 我整理了完整文件,見我的網盤。 engineercms 0基礎安裝linux、onlyoffice和engineercms&n

Linux使用conda命令管理包管理環境詳細講解

目錄 1. 管理包 2. 管理環境 3. 環境儲存和匯入、列出環境、刪除環境 4. 最後總結 1. 管理包 1.1 安裝包 安裝了 Anaconda 之後,管理包是相當簡單的。要安裝包,請在終端中鍵入 conda install package_name。

Linux啟動,停止,重啟NginxMysqlPHP

LINUX啟動Nginx的命令: 一、查詢是否啟動 [[email protected] php-fpm.d]# ps -ef | grep nginx root 25225 1 0 19:26 ? 00:00:00 nginx: master process

linux 檔案同步函式(fflushsyncfsyncfdatasync)之間差異

遇到機器異常關機時,寫log檔案資訊丟失問題,所以記錄下。   Linux實現中在核心設有緩衝區快取記憶體或頁面快取記憶體,大多數磁碟I/O都通過緩衝區進行。當我們向檔案寫資料時,核心通常先將資料複製到一個緩衝區中,如果該緩衝區尚未寫滿,則並不將其排入輸出佇列,而是等待寫滿或者核心需要重用該

LINUX目標檔案的BSS段資料段程式碼段

轉自:http://blog.chinaunix.net/uid-27018250-id-3867588.html 作業系統:ubuntu 13.04 工具:gcc, objdump, readelf 參考:《程式設計師自我修養》 程式碼編譯後的機器指令經常被放在程式碼段裡,程式碼段名為".te

Linux 壓縮與解壓縮 zipbinzip2tarzip命令的使用

我們經常需要對檔案壓縮或打包實現統一管理,下面就讓我們來看看gzip、bzip2、tar、zip這些命令的使用 (1)    gzip 格式:gzip [選項] [檔案] 示例: ---在testzip目錄下有以下檔案 --

Linux用ifconfig命令設定IP掩碼閘道器

2 ifconfig 配置網路介面; ifconfig 可以用來配置網路介面的IP地址、掩碼、閘道器、實體地址等;值得一說的是用ifconfig 為網絡卡指定IP地址,這只是用來除錯網路用的,並不會更改系統關於網絡卡的配置檔案。如果您想把網路介面的IP地址固定下來,目前有三個方法:一是通過各個 發行和版本專用