
概括:我有一部幾年前從 YouTube 下載的老電影,保存為 flv。我想從中提取一個 13 分鐘的剪輯。為此,我使用 ffmpeg 將其轉換為 mp4,這樣我就可以將其加載到達芬奇中,並在其中提取了剪輯。然後我用Handbrake來壓縮它。但當我這樣做時,HandBrake 顯著減小了幀大小,並且壓縮後的剪輯與原始剪輯相比有些模糊。
為什麼 HandBrake 會強制減少幀大小,以及如何讓它以正確的幀大小輸出?
細節:
flv 檔案大小為 268 MB,持續時間 107 分鐘,幀大小 318x240,幀速率 25:
這ffmpeg指令我曾經轉換成mp4:
ffmpeg -i input.flv -c copy output.mp4
這花了大約一秒鐘的時間。結果是 264 MB:
我將其加載到 DaVinci 中,提取剪輯,然後渲染為 mp4、H.265、318x240、25 fps:
結果是 51.4 MB,13:19 mm:ss。 MediaInfo 報告它是 HEVC,我理解這意味著它是 H.265,正如我所要求的:
尺寸與時間的比例比整部電影大得多:
- 影片:264 MB/107 分鐘 = 2.5 MB/分鐘。
- 剪輯:51.4 MB / 13.33 分鐘= 3.9 MB/分鐘。
當我在 HandBrake 中載入剪輯時,它告訴我來源是 318x240,25 fps。儘管它是 H.265 格式,HandBrake 告訴我它是 H.264 格式。然後,HandBrake 也與它的來源資訊相矛盾,在「Tracks」下說它是 30 fps,尺寸是 234x174。
========================
在 Handbrake 的「視訊」標籤中,編碼器顯示為 H.264,幀速率為 30。
========================
我將其更改為 265 和 25:
========================
「尺寸」標籤再次顯示尺寸為 318x240,但隨後又顯示:
縮放後的大小和最終儲存大小為234x174。我嘗試單擊幾個內容,但無法更改輸出大小。
========================
當我運行它時,輸出為 22 MB,這很好地減少了檔案大小:
- 壓縮剪輯:22 MB / 13.33 分鐘。 = 1.7 MB/分鐘。
但幀大小是234x174:
與原始影片相比,該影片有些模糊,這很可能是由於幀尺寸減小造成的。
由達文西渲染的剪輯。
這可能會為問題提供線索。影像佔用的空間小於播放器的整個視窗。達文西是否縮小了影片的比例?
為什麼 HandBrake 會強制減少幀大小,以及如何讓它以正確的幀大小輸出?
答案1
提問者的編輯:我接受了這個答案,因為它給了我我需要的東西。但請參閱我也給出的附加答案中的更多詳細資訊。
記住 Handbrake 很大程度上是 FFMPEG 的皮膚,具有一些相對用戶友好的預設,這可能會有所幫助。您的進程目前正在進行 FFMPEG > DaVinci > FFMPEG,我們沒有看到任何額外步驟的真正原因。因此,跳過所有中間步驟,只需使用 FFMPEG 來剪輯影片。這是另一個問題,可能涵蓋您的基本需求:https://stackoverflow.com/questions/21420296/how-to-extract-time-accurate-video-segments-with-ffmpeg
用 指定剪輯開始時間-ss 00:00:00
,用 指定剪輯結束時間-to 00:00:00
。就像我上面連結的問題中的這個例子:
ffmpeg -y -i [INPUT.file] -ss 00:42:42 -to 00:84:84 -codec copy [OUTPUT.file]
這樣做可以消除由於當前使用的多個步驟而導致問題的所有可能性。
答案2
我接受“music2myear”的答案,因為它給了我我需要的東西。但由於某種原因,它假設我不關心輸出檔案的大小。但我確實關心這一點,這就是我運行 HandBrake 的原因。
所以我改變了codec
答案中的參數。以下是我的結果摘要:
H.265 格式的達文西剪輯:51.4 MB
達文西剪輯然後手煞車:22.0 MB(模糊)
來自 FFmpeg 的剪輯
-codec copy
:29.5 MB來自 FFmpeg 的剪輯
-codec:v hevc -codec:a copy
:15.2 MB
兩個 FFmpeg 結果似乎都具有良好的品質。帶編解碼器的copy
大約需要一秒鐘,帶有 的hevc
大約需要一分鐘。
mFFmpeg 與編解碼器的結果hevc
很好地減少了檔案大小:
- 影片:264 MB/107 分鐘 = 2.5 MB/分鐘。
- 達文西剪輯:51.4 MB / 13.33 分鐘。 = 3.9 MB/分鐘。
- 來自帶有編解碼器的 FFMpeg 的剪輯
hevc
:15.2 MB / 13.33 分鐘 = 1.1 MB/分鐘。
所以,我不知道為什麼 HandBrake(或達文西和 HandBrake 的組合)要縮小框架尺寸。但我確實有關於如何以正確的幀大小(和有效的文件大小)獲得高品質輸出的答案,即直接使用FFmpeg。
答案3
這是一種解決方法,而不是確切的答案:使用 GUI 一步完成整個過程,從而完全控制輸出的保存方式。
兩個免費的開源影片編輯器,鏡頭剪輯和開放射擊(兩者均適用於 Linux、Mac 以及 Windows 版本,並且兩個 Windows 應用程式都在葡萄酒,也在這台 Ubuntu 機器上),例如,可以打開 FLV 視頻文件,編輯它們,並以各種格式保存編輯後的輸出,並具有可調節的分辨率和質量。有許多替代影片編輯器, 也。
上面的截圖來自OpenShot 匯出視頻對話框,以及鏡頭剪輯提供更精細的輸出控制。選擇要編輯的片段,套用篩選器,例如銳化,如果需要,並在使用者控制下導出色域(例如廣播、MPEG 或 JPEG)、解析度、幀速率、壓縮等,所有這些都可以透過一個工具完成。這兩個程序都不會令人生畏,因為預設了合理的預設值。