日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

FFmpeg在Ubuntu的安装以及教程~~~

發布時間:2025/3/12 Ubuntu 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FFmpeg在Ubuntu的安装以及教程~~~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? FFmpeg在Ubuntu的安裝以及教程~~~

一、安裝

可通過PPA進行安裝
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

sudo apt-get update

sudo apt-get install ffmpeg

查看是否安裝成功:

ffmpeg -version

二、相關概念

比特率

比特率,是一個決定音視頻總體質量的參數。他決定每個時間單位處理的bit數,英文為 bit rate,描述每秒鐘輸出多少 KB 的參數,單位是 Kbps,也就是 kbit/s,8Kbit/s = 1KB/s。壓縮同一個視頻,視頻編碼率越大,文件體積越大,畫質越好。

MP3一般使用的比特率為 8~320kbps。

設置比特率: ? ? ????比特率決定處理1s的編碼流需要多少bits,設置用-b選項。區分音視頻用-b:a和-b:v 例如:設置整體1.5Mbit每秒 ffmpeg -i file.avi -b 1.5M file.mp4
ffmpeg -i input.avi -b:v 1500K output.mp4

幀數

? ? ? ? ?每秒鐘播放的圖片數,單位 fps(英文:Frames Per Second),幀率就是每秒編碼進視頻文件的幀數目人類的眼睛需要每秒至少15幀才能將圖像連貫在一起。幀率的單位是HZ,LCD顯示一般有60Hz的平率。高的幀率可以得到更流暢、更逼真的動畫。一般來說30fps就是可以接受的,但是將性能提升至60fps則可以明顯提升交互感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提升了。如果幀率超過屏幕刷新率只會浪費圖形處理的能力,因為顯示器不能以這么快的速度更新,這樣超過刷新率的幀率就浪費掉了。

????????在同一視頻,同一碼率的情況下,幀數越大,則畫質越不好。尤其是運動的畫面。因為每張畫面會分擔每秒有限的文件體積,如果畫面越多,那么每張畫面所能表現的內容就越有限。

????????當畫面的FPS達到60幀/秒時,已經能滿足絕大部分應用需求。一般情況下,如果能夠保證游戲畫面的平均FPS能夠達到30幀/秒,那么畫面已經基本流暢;能夠達到50幀/秒,就基本可以體會到行云流水的感覺了。一般人很難分辨出60 幀/秒與100幀/秒有什么不同

幀率設置

使用-r選項 ffmpeg -i?input?-r fps?output 例如: ffmpeg -i input.avi -r 30 output.mp4
分辨率 最好理解的概念了,表示畫面的大小,單位是像素 px。

????和編碼率的關系:越高的分辨率,需要越高的編碼率,因為圖像的細節多了,需要的文件體積也應該增大,否則還不如畫面小一些,你會發現同一碼率,畫面越大,圖像的馬賽克程度越明顯。

采樣率

????????每秒鐘對音頻信號的采樣次數,采樣頻率越高聲音還原度越高,聲音更加自然。單位是赫茲 Hz。音頻文件一般使用的采樣率是 44100 Hz ,也就是一秒鐘采樣 44100 次,之所以使用這個數值是因為經過了反復實驗,人們發現這個采樣精度最合適,低于這個值就會有較明顯的損失,而高于這個值人的耳朵已經很難分辨,而且增大了數字音頻所占用的空間。我們所使用的CD的采樣標準就是44.1k,目前44.1k還是一個最通行的標準。



三、常見用法


主要參數:

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

-ar 設定采樣率
-ac 設定聲音的Channel數
-acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器
-an 不處理音頻


用法舉例

顯示視頻信息

ffmpeg -i input.avi

1、格式轉換

ffmpeg最常用功能就是格式轉換,在這里要特別提的是,音、視頻文件格式有兩個容器格式(如mov、flv)與編碼格式(如H.264)

ffmpeg -i input.flv output.mp4


2、尺寸變換

ffmpeg -i input.mp4 -s 640x360 output.mp4


3、剪切視頻段

ffmpeg -i input.mp4 -ss 5 -t 10 output.mp4

上面的命令-ss 5指定從輸入視頻第5秒開始截取,-t 10指明最多截取10秒。 但是上面的命令可能會比較慢,更好的命令如下:

ffmpeg -ss 5 -i input.mp4 -t 10 -c:v copy -c:a copy output.mp4

上面的命令把-ss 5放到-i前面,與原來的區別是,這樣會先跳轉到第5秒在開始解碼輸入視頻,而原來的會從開始解碼,只是丟棄掉前5秒的結果。 而-c:v copy -c:a copy標示視頻與音頻的編碼不發生改變,而是直接復制,這樣會大大提升速度,因為這樣就不需要完全解碼視頻(視頻剪切也不需要完全解碼)

注意:-vcodec?有一個縮寫叫做?-c:v?,?-acodec?有一個縮寫叫做?-c:a?。

4、改變FPS

FFmpeg可以用于降低或提高視頻的幀率,因為信息丟失不可逆法則,提高幀率只會簡單地讓某些幀的畫面多重復一次或多次,所以提高幀率不會提高畫質。

ffmpeg -i input.mp4 -r 30 output.mp4

上面的命令,不論原始視頻幀率是多少,輸出視頻都會是30幀每秒。這種情況之下視頻的時間軸不會變化,不會有慢動作或快動作的效果

5、截取圖片

視頻10秒的地方(-ss 參數)截取一張1920x1080尺寸大小的,格式為jpg的圖片 -ss后跟的時間單位為秒

ffmpeg -i input_video.mp4 -y -f image2 -t 0.001 -ss 10 -s 1920x1080 output.jpg

把視頻的前30幀轉換成一個Gif

ffmpeg -i input_video.mp4 -vframes 30 -y -f gif output.gif

將視頻轉成 gif

ffmpeg -ss 00:00:00.000 -i input.mp4 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif

將輸入的文件從(-ss)設定的時間開始以10幀頻率,輸出到320x240大小的 gif 中,時間長度為-t 設定的參數。通過這樣轉換出來的 gif 一般都比較大,可以使用?ImageMagick?來優化圖片的大小。



四、轉碼時輸出信息

frame= 28 fps=0.0 q=0.0 size= 2kB time=00:00:01.49 bitrate= 11.3kbits/s frame= 30 fps= 17 q=-0.0 size= 13kB time=00:00:01.49 bitrate= 71.1kbits/ frame= 34 fps= 15 q=-0.0 size= 20kB time=00:00:01.66 bitrate= 99.9kbits/ frame= 38 fps= 13 q=-0.0 size= 31kB time=00:00:01.83 bitrate= 138.1kbits/ frame= 42 fps= 12 q=-0.0 size= 40kB time=00:00:02.00 bitrate= 165.1kbits/ frame= 46 fps= 11 q=-0.0 size= 49kB time=00:00:02.17 bitrate= 185.4kbits/ frame= 50 fps= 10 q=-0.0 size= 57kB time=00:00:02.34 bitrate= 199.3kbits/ frame= 54 fps= 10 q=-0.0 size= 63kB time=00:00:02.51 bitrate= 204.9kbits/ frame= 58 fps=9.5 q=-0.0 size= 74kB time=00:00:02.68 bitrate= 226.2kbits/ frame= 62 fps=9.2 q=-0.0 size= 85kB time=00:00:02.68 bitrate= 260.5kbits/ frame= 65 fps=8.8 q=-0.0 size= 92kB time=00:00:02.85 bitrate= 264.9kbits/


FFmpeg 確實不會顯示進度條和百分比,不過,它會給你比進度條和百分比還要多的信息。

  • 最左邊的?frame= 65?是轉碼所進行到的幀數,顯示 65 就表示現在已經轉到了第 65 幀。
  • 第二個?fps=8.8?中的 FPS 就是?Frame?per?Second ,也就是現在電腦每秒所處理的幀的數量。注意這個數字跟視頻的幀率并無關系。
  • 其實我也不知道后面那個 `q=-0.0` 是什么意思。
  • 接下來的?size= 92kB?表示現在已經轉換出來的視頻的體積,這個數字只會越變越大啊。
  • 第五個?time=00:00:02.85?顧名思義就是時間了,它是已經轉換出來的視頻的時間。在我看來,它也是一個比百分比進度條更加精準的進度顯示。

  • 參考博文:https://blog.csdn.net/dianxin113/article/details/68486359

    總結

    以上是生活随笔為你收集整理的FFmpeg在Ubuntu的安装以及教程~~~的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。