Ffmpeg的視頻操作官網文檔:https://ffmpeg.org/ffmpeg-filters.html#Video-Filters 視頻壓縮用到的參數主要為以下幾個: 文件路徑:-i 輸入文件的路徑 碼率:-b:v 輸出文件的碼率 解析度:-s 輸出文件的解析度; 幀率:-r 輸出文件的幀率值 ...
Ffmpeg的視頻操作官網文檔:https://ffmpeg.org/ffmpeg-filters.html#Video-Filters
視頻壓縮用到的參數主要為以下幾個:
- 文件路徑:-i 輸入文件的路徑
- 碼率:-b:v 輸出文件的碼率
- 解析度:-s 輸出文件的解析度;
- 幀率:-r 輸出文件的幀率值
碼率
碼率,即波特率。值越小,轉換後的視頻越小
碼率就是數據傳輸時單位時間傳送的數據位數,一般我們用的單位是kbps即千位每秒。
碼率與體積成正比:碼率越大,體積越大;碼率越小,體積越小。由於文件體積與取樣率是成正比的,所以幾乎所有的編碼格式都想用最低的碼率達到最少的失真,“碼率”就是失真度,碼率越高越清晰,反之則畫面粗糙而且馬賽克多。
建議碼率不要小於500。一般500k左右,人眼看不到明顯的閃爍。
案例:ffmpeg.exe -i test.MP4 -b 600k output.mp4
解析度
指的是視頻的解析度,常見的解析度有4096*2304,1920*1080,720*576等。
具體的值,可以根據源視頻的解析度做個等比的縮小。
案例:ffmpeg.exe -i test.MP4 -s 1920*1080 output.mp4
幀率
幀率(即視頻更新率),就是每秒編碼進視頻文件的幀數目,是用於測量顯示幀數的量度。
測量單位為“每秒顯示幀數”(Frame Per Second,FPS,幀率)或“赫茲”,單位用FPS用來描述視頻每秒播放多少幀,而單位用赫茲用來描述顯示器的畫面每秒更新多少次。
常見的帖率有25、30,高清電視有50、60幀。
一般幀率越高,視頻畫面越流暢。但是人類的眼睛需要每秒至少15幀才能將圖像連貫在一起~
案例:ffmpeg.exe -i test.MP4 -r 25 output.mp4
FFmpeg使用
一般的壓縮命令可以用:ffmpeg.exe -i test.MP4 -b:v 500k -r 25 -s 1920x1080 output.mp4。解析度可以根據源視頻的尺寸等比進行設置~
1. 下載ffmpeg.exe
ffmpeg.exe文件下載鏈接: https://pan.baidu.com/s/1DmeIHlDsCTq1SdSm_ejbmQ 提取碼: jrkm
2.Xabe.FFmpeg
Xabe.FFmpeg是一個ffmpeg第三方封裝,它提供了ffmpeg的下載、管理以及ffmpeg.exe的詳細封裝操作,使ffmpeg的操作更加簡潔。
通過Nuget包引用後(只支持.net 4.6.1及以上),調用await FFmpeg.GetLatestVersion(FFmpegVersion.Full); 即可獲取相應的版本。
Xabe.FFmpeg 官網指導: https://ffmpeg.xabe.net/index.htmlXabe.FFmpeg的使用,可參考博客:C# 中使用 FFmpeg.NET
參考文章:
- ffmpeg視頻壓縮命令 https://blog.csdn.net/leadseczgw01/article/details/83412104
- ffmpeg視頻轉碼壓縮 https://blog.csdn.net/zhezhebie/article/details/79263492?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3
- ffmpeg -比特率,幀率和文件大小 https://blog.csdn.net/xujaiwei/article/details/73457123
- 視頻壓縮工具ffmpeg的使用 https://www.jianshu.com/p/4f660bd805f3