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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux 视频编辑 ffmpeg,ffmpeg转码视频真的好用!(ffmpeg的简单使用方法)

發布時間:2025/3/11 linux 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 视频编辑 ffmpeg,ffmpeg转码视频真的好用!(ffmpeg的简单使用方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明

轉碼和編輯視頻

今天用Android Studio(后面簡稱AS)里的模擬器給系統錄屏,用來展示OpenGL可視化的東西,打算上傳B站,后來發現AS只能保存webm格式和GIF格式的視頻,并且文件體積巨大,視頻圖像也是順時針旋轉的。

沒辦法,只能找個視頻編輯器進行轉碼和編輯,結果發現網上的視頻轉碼工具基本粗制濫造,像Adobe PR這樣的視頻剪輯軟件我也沒必要下載,于是找到了ffmpeg(其實很早之前在樹莓派上玩Linux的時候用過)。

我進入ffmpeg官網下載了Win64版本,下載速度很快,下載下來就是一個壓縮包,解壓后就是工具本體了,不過它沒有任何UI界面,在Windows下你只能進入bin目錄,然后Shift+鼠標右鍵打開命令窗口,使用ffmpeg的指令進行操作。如下圖,可以看到轉碼效率很高。

下面分析網上搜集的ffmpeg簡單用法,可以進行很多基礎的視頻編輯。

ffmpeg的簡單用法

轉碼

最簡單命令如下:

ffmpeg -i out.ogv -vcodec h264 out.mp4

ffmpeg -i out.ogv -vcodec mpeg4 out.mp4

ffmpeg -i out.ogv -vcodec libxvid out.mp4

ffmpeg -i out.mp4 -vcodec wmv1 out.wmv

ffmpeg -i out.mp4 -vcodec wmv2 out.wmv

-i 后面是輸入文件名。-vcodec 后面是編碼格式,h264 最佳,但 Windows 系統默認不安裝。如果是要插入 ppt 的視頻,選擇 wmv1 或 wmv2 基本上萬無一失。

附加選項:-r 指定幀率,-s 指定分辨率,-b 指定比特率;于此同時可以對聲道進行轉碼,-acodec 指定音頻編碼,-ab 指定音頻比特率,-ac 指定聲道數,例如

ffmpeg -i out.ogv -s 640x480 -b 500k -vcodec h264 -r 29.97 -acodec libfaac -ab 48k -ac 2 out.mp4

剪切

用 -ss 和 -t 選項, 從第 30 秒開始,向后截取 10 秒的視頻,并保存:

ffmpeg -i input.wmv -ss 00:00:30.0 -c copy -t 00:00:10.0 output.wmv

ffmpeg -i input.wmv -ss 30 -c copy -t 10 output.wmv

達成相同效果,也可以用 -ss 和 -to 選項, 從第 30 秒截取到第 40 秒:

ffmpeg -i input.wmv -ss 30 -c copy -to 40 output.wmv

值得注意的是,ffmpeg 為了加速,會使用關鍵幀技術, 所以有時剪切出來的結果在起止時間上未必準確。 通常來說,把 -ss 選項放在 -i 之前,會使用關鍵幀技術; 把 -ss 選項放在 -i 之后,則不使用關鍵幀技術。 如果要使用關鍵幀技術又要保留時間戳,可以加上 -copyts 選項:

ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy -copyts cut.mp4

合并

把兩個視頻文件合并成一個。

簡單地使用 concat demuxer,示例:

$ cat mylist.txt

file '/path/to/file1'

file '/path/to/file2'

file '/path/to/file3'

$ ffmpeg -f concat -i mylist.txt -c copy output

更多時候,由于輸入文件的多樣性,需要轉成中間格式再合成:

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg

ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg

cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg

ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

調整播放速度

加速四倍:

ffmpeg -i TheOrigin.mp4 -vf "setpts=0.25*PTS" UpTheOrigin.mp4

四倍慢速:

ffmpeg -i TheOrigin.mp4 -vf "setpts=4*PTS" DownTheOrigin.mp4

幀率設置

使用-r選項

語法是:

ffmpeg -i input -r fps output

例如:

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

使用fps filter

另一個設置幀率是用fps filter,特別是在filterchains使用時非常有用。

例如:修改輸入文件的幀率到25

ffmpeg -v clip.mpg -vf fps=fps=25 clip.webm

比特率設置

比特率也是一個決定音視頻總體質量的參數。他決定每個時間單位處理的bit數。

設置比特率:

比特率決定處理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

CBR設置

CBR設置一般用作直播流,比如視頻會議。為輸出設置CBR,有三個參數必須設置為同一個值。

bitrate(-b option), minimal rate(-minrate), maximal rate(-maxrate)。maximal rate需要設置-bufsize選項。例如設置CBR為0.5Mbit/s。

ffmpeg -i in.avi -b 0.5M -minrate 0.5M -maxrate 0.5M -bufsize 1M output.mkv

設置輸出文件的最大size

用-fs選項。

例如設置輸出文件的最大的size為10M

ffmpeg -i input.avi -fs 10MB output.mp4

文件大小計算

文件的大小是是音視頻流大小的和。

視頻流的大小的方程式是(除以8是由bits到bytes的轉換):

video_size = video_bitrate * time_in_seconds / 8;

如果音頻是解壓縮的,計算公式是:

audio_size = smpaling_rate * bit_depth * channels * time_in_second / 8;

例如:計算10分鐘的視頻, 1500kbits/s 視頻比特率和 128kbits/s的音頻比特率,用下面的計算方法:

file_size = video_size + audio_size;

file_size = (video_bitrate + audio_bitrate) * time_in_seconds / 8;

file_size = (1500 kbits/s + 128kbits/s) * 600s

file_size = 1628kbits/s * 600s

file_size = 976800kb = 976800000 b / 8 = 122100000 B / 1024 = 119238.28125KB

file_size = 119238.28125 KB / 1024 = 116.443634033203125MB = 116.44M

總結

以上是生活随笔為你收集整理的linux 视频编辑 ffmpeg,ffmpeg转码视频真的好用!(ffmpeg的简单使用方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

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