Handbrake 可以將大約 30 分鐘的 DVD 剪輯轉換為 300MB 的.mkv
檔案。為了進行實驗,我還嘗試了 1GB 檔案大小和 2GB,結果都是 1GB 或 2GB。
但我估計DVD上的原始影片應該只有600MB左右,那麼如何才能讓檔案「比以前更大」呢? (mkv、mp4 格式應該比 DVD 的 mpeg2 有更好的壓縮效果)。
我還記得我之前嘗試過使用 divx 或 xvid,檔案大小有限制:例如,我可以指定一個 1.5 小時的影片有 3GB 或有 8Mbit/s,但內容根本沒有所以它需要儲存很多「位元」(因為它可以高度壓縮影片),因此最終檔案不能超過1.8GB 或類似的大小,無論我給它的位元率或所需檔案大小有多高。但有了 Handbrake,我似乎可以用這麼短的剪輯來建立 1GB 或 2GB 的檔案。這是為什麼?
答案1
它與上採樣/下採樣有關。
想像一下必須編寫這個軟體:您必須讀取一個可以壓縮在一個壓縮檔案中的壓縮檔案。種類格式,然後以另一種格式重新壓縮。
等待!為什麼你不能走直接地到另一種格式?
嗯,你會怎樣?壓縮是有損的,為了理解如何壓縮它,你首先必須解壓縮它,看看它在說什麼!
此外,您也不希望您的演算法爆炸;即,如果您要在10 種格式之間進行轉換,則您不希望使用10 * 9 = 90 種壓縮演算法和90 種解壓縮演算法來從每種格式轉換為每種其他格式,但您寧願使用10種演算法一個解壓縮格式,還有 10 個可轉換成另一種壓縮格式。
那麼你有先解壓它。之後,你可以選擇如何重新壓縮——無論你選擇什麼,你都會比什麼都不做時失去的更多。
即,這是一個有點幼稚的計算,但如果某些內容保留了原始內容的 50%,並且您將其解壓縮並重新壓縮,您將得到 50%,即 25%。這並沒有涵蓋其他一些方面,但它確實解釋了為什麼重新壓縮(又稱轉碼)是很少推薦;如果您需要它,請嘗試重新壓縮原始檔案(如果可能)。
希望這是有道理的。
答案2
媒體壓縮不像 zip 和類似的壓縮演算法,它們會機會性地利用精確重複。最簡單地說,它更像是找到訊號的表示,可以刪除(或添加)細節,同時對解碼訊號的可見變化最小。既然如此,將一個小檔案「壓縮」成一個更大的檔案就非常容易了。您匯出轉換後的表示,然後用額外的中性資料填滿它。
當您需要從低位元率視訊檔案轉換為高位元率視訊檔案時,這幾乎就是您所得到的結果。
嚴格來說,即使對於起始大小為 600MB 的視頻,擁有 2GB 而不是 1GB 的內存也可能會給您帶來一些好處 - 儘管這可能不是您不惜任何代價想要的東西。
原始影片是使用 MPEG2(用於 DVD)而不是使用 MKV 進行壓縮的。不同的壓縮系統有不同的“工件”。文件的每次轉換最多只能保留可用的細節。隨著壓縮方案的改變,不可避免地至少會失去一些東西。文件越大,損失就越少 - 即使文件比原始文件大得多。這意味著您不太可能丟失先前壓縮方案的所有不需要的工件。
另一種看待它的方式......
可以的影片集完美與未壓縮的影片相比,使用任何壓縮方案表示的內容都非常有限。將檔案大小減少 1 個字節,原則上您已將可以表示的影片數量除以 256。
可以的影片集完美MPEG2 中表示的影片集與可表示的影片集非常不同完美以 MKV 形式表示。即使您擁有完美的編解碼器,您也不太可能完美地保留從一種壓縮方法轉換為另一種壓縮方法的視訊 - 即使轉換為更高的位元率。
答案3
這是因為手煞車是自由的壓縮演算法也只能到此為止。專業人士使用的更多昂貴的。
邁赫達德的回答一針見血。為了直接從 MPEG2 (DVD) 轉換為 H.264(我假設這就是您正在使用的),您必須專門編寫程式來進行轉換。這就引出了邁赫達德所說的話。基本上必須編寫萬事通壓縮演算法或編寫一堆較小的演算法。對我來說,這兩個聽起來都不是一個成功的解決方案。