一、到ffmpeg官網(wǎng)下載文件包:
Download FFmpeg
下載后找到 bin 下的3個(gè)exe文件,復(fù)制到自己本機(jī)的某個(gè)目錄下, 如:
二、使用命令行壓縮:
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -y output.mp4
這條命令使用 FFmpeg 工具對(duì)輸入視頻文件?input.mp4
?進(jìn)行壓縮,并將壓縮后的視頻保存為?output.mp4
?文件。以下是對(duì)命令中各個(gè)參數(shù)的詳細(xì)解釋:
-
ffmpeg
: FFmpeg 是一個(gè)開源的音視頻處理工具,可以用于處理、轉(zhuǎn)換和編輯音視頻文件。 -
-i input.mp4
: 指定要處理的輸入視頻文件為?input.mp4
。-i
?是 FFmpeg 中用于指定輸入文件的參數(shù)。 -
-c:v libx265
: 指定視頻編碼器為 libx265,這表示使用 H.265/HEVC 編碼器進(jìn)行視頻壓縮。-c:v
?是用于指定視頻編碼器的參數(shù)。 -
-crf 28
: 指定視頻的質(zhì)量級(jí)別,數(shù)值越小表示質(zhì)量越高,壓縮率越低。在這里,-crf 28
?表示使用 CRF(Constant Rate Factor)為 28 進(jìn)行壓縮,這是一個(gè)常用的視頻質(zhì)量控制參數(shù)。 -
-y
: 在輸出文件存在時(shí)自動(dòng)覆蓋。如果不加?-y
?參數(shù),在輸出文件已存在時(shí),F(xiàn)Fmpeg 會(huì)提示是否覆蓋輸出文件。 -
output.mp4
: 指定壓縮后的視頻文件名為?output.mp4
。
綜合起來(lái),這條命令的作用是將輸入視頻文件?input.mp4
?使用 libx265 編碼器進(jìn)行壓縮,質(zhì)量級(jí)別為 28,并將壓縮后的視頻保存為?output.mp4
?文件。執(zhí)行該命令后,將生成一個(gè)經(jīng)過(guò)壓縮處理的輸出視頻文件。
請(qǐng)注意,壓縮視頻可能會(huì)導(dǎo)致視頻質(zhì)量的損失,但可以減小視頻文件的大小。您可以根據(jù)需要調(diào)整?-crf
?參數(shù)來(lái)平衡視頻質(zhì)量和文件大小。
三、使用FFmpeg對(duì)文件夾下的所有mp4文件進(jìn)行批量壓縮處理的powershell腳本:
如下ps腳本實(shí)現(xiàn)了對(duì)2個(gè)文件夾中的未壓縮過(guò)的視頻或者大于12MB的視頻進(jìn)行壓縮。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-841150.html
視頻每壓縮一次,會(huì)小一點(diǎn)點(diǎn),我這里的來(lái)源只是到2分鐘內(nèi)的視頻,所以可以多次壓縮。太大的視頻就不要這樣了,根據(jù)實(shí)際情況來(lái)吧。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-841150.html
function CompressVideosInFolder($folder) {
$ffprobePath = "D:\Program\ffmpeg\ffprobe.exe"
$ffmpegPath = "D:\Program\ffmpeg\ffmpeg.exe"
Get-ChildItem -Path $folder -Filter *.mp4 | ForEach-Object {
$filename = $_.Name
$tempOutputPath = Join-Path $folder "temp_$filename"
$codec = (& $ffprobePath -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1 $_.FullName).Trim()
$fileSize = $_.Length / 1MB # 文件大小轉(zhuǎn)換為MB
Write-Host "Codec of file $filename is: $codec"
Write-Host "File size of $filename is: $fileSize MB"
if ($codec -ne "codec_name=hevc" -or $fileSize -gt 12) {
Write-Host "File $filename needs compression..."
Write-Host "Compressing file $filename..."
& $ffmpegPath -i $_.FullName -c:v libx265 -crf 30 -y $tempOutputPath
Move-Item -Path $tempOutputPath -Destination $_.FullName -Force
} else {
Write-Host "File $filename does not need compression, skipping..."
}
}
}
$folder1 = "E:\uploads\Video"
$folder2 = "E:\uploads\testVideo"
CompressVideosInFolder $folder1
CompressVideosInFolder $folder2
到了這里,關(guān)于使用ffmpeg壓縮視頻的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!