centos7下FFmpeg環境部署學習記錄

# centos7下FFmpeg環境部署記錄

隨着視頻在網站上的應用越來越多,越來越多的網站服務器需要支持視頻轉碼,視頻壓縮,FFmpeg是目前最好用的網站服務器後臺轉碼程序,應用最多。FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。採用LGPL或GPL許可證。它提供了錄製、轉換以及流化音視頻的完整解決方案。

## 下面介紹下在Centos7下針對FFmpeg的部署記錄

### 安裝EPEL Release,因爲安裝需要使用其他的repo源,所以需要EPEL支持

$ yum install -y epel-release
$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7          //如果出現缺少Code提示,就執行此條命令。
$ yum repolist            //安裝完成之後,可以查看是否安裝成功

注意⚠️:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 表示導入公鑰,詳見[軟件包簽名常見問題](https://getfedora.org/zh_CN/keys/faq/)

### 安裝Nux-Dextop源

$ rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro         //導入一個Code
$ rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm         //安裝nux-dextop 源
$ yum repolist      #查看repo源是否安裝成功

### 安裝ffmpeg

$ yum install -y ffmpeg
$ ffmpeg -version
ffmpeg version 2.8.15 Copyright (c) 2000-2018 the FFmpeg developers
...
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
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  2.101 /  1.  2.101
libpostproc    53.  3.100 / 53.  3.100

## 一鍵安裝腳本

$ cat ffmpeg_install.sh
$!/bin/bash
yum install -y vim
yum install -y epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum repolist
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
yum repolist
yum update -y
yum install -y ffmpeg
ffmpeg -version

## FFmpeg常用基本命令

### 分離視頻音頻流 

$ ffmpeg -i input_file -vcodec copy -an output_file_video  //分離視頻流
$ ffmpeg -i input_file -acodec copy -vn output_file_audio  //分離音頻流

### 視頻解複用

$ ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
$ ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

### 視頻轉碼

$ ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264              //轉碼爲碼流原始文件
$ ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264  //轉碼爲碼流原始文件
$ ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi            //轉碼爲封裝文件
//-bf B幀數目控制,-g 關鍵幀間隔控制,-s 分辨率控制

### 視頻封裝

$ ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

### 視頻剪切

$ ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg        //提取圖片
$ ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi    //剪切視頻
//-r 提取圖像的頻率,-ss 開始時間,-t 持續時間

### 視頻錄製

$ ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

### YUV序列播放

$ ffplay -f rawvideo -video_size 1920x1080 input.yuv

### YUV序列轉AVI

$ ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

### 主要常用參數說明

```
-i 設定輸入流
-f 設定輸出格式
-ss 開始時間
視頻參數:
-b 設定視頻流量,默認爲200Kbit/s
-r 設定幀速率,默認爲25
-s 設定畫面的寬與高
-aspect 設定畫面的比例
-vn 不處理視頻
-vcodec 設定視頻編解碼器,未設定時則使用與輸入流相同的編解碼器
音頻參數:
-ar 設定採樣率
-ac 設定聲音的Channel數
-acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器
-an 不處理音頻
```

## 原文鏈接

[centos7下FFmpeg環境部署記錄](https://cloud.tencent.com/developer/article/1027379)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章