精華區beta C_Chat 關於我們 聯絡資訊
作者: kisaraki (如月未緒) 看板: C_Chat 標題: Re: [問題] 大家會想收藏哪種格式的動畫 時間: Wed May 9 14:06:16 2012 純就技術方面來討論 wohtp 提到 : 現代的影像壓縮法都是一次處理連續幾個frame,所以要解壓縮出現在螢幕上面的 這個frame,播放器需要先讀取未來的frame的資料,而avi不支援這個先讀 的動作。所以它才會被淘汰。 和 xmax0083 : AVI就已經開始跟不上時代一點啦 不支援b-frame就很難把影片跑得方便又好用,加上只能有一影一音,很簡陋 關於這部份,應該都是指 B-Frame 先從一般 Mpeg-4(DivX/Xvid/AVC H.264) 的影像結構來看 一段完整的影像通常由一群 GOP ( Groupo of Picture ) 所組成 GOP 內通常包含了 I, P, B 三種 Frame 格式 I-Frame 為一整個完整畫面,可以單一獨立解碼,也通稱為 Key-Frame P-Frame 為向前參考,必須要參考前一張畫面,才能解碼 B-Frame 為雙向參考,除前張外,也必須要參考下一張畫面才能解碼 在一般的狀態下,一個影片的 GOP 通常應為 IPPPPPP..... 因此只考慮單純播放,放完就沒了,所以只需要有 I, P 但若影片有倒轉的需求,那麼編碼時 GOP 就可能會改成 IBPBPBP 其中 GOP 內 B 和 P 的數量是可以依參數設定不同而異的 AVI 格式由於 RIFF Chunk 的限制,Chunk 在播放時只能循序讀取 因此原生並不支援 B-Frame,但不表示不能用其他手段讓它支援 DivX 就在 AVI 內使用 [PB] 的方式將二個 Frame 給 Pack 在一起 使下一張的 P 可以讓 B 來參考,而此方式目前也為多數 Player 所接受 所以在目前的狀況下,說要在 AVI 內使用 B-Frame 也不是不可能的 -- 另一方面,AVI 也可以一影多音,甚至可以內嵌字幕 請看 AVI 的 StreamHeader 結構 typedef struct { FOURCC fccType; FOURCC fccHandler; DWORD dwFlags; WORD wPriority; WORD wLanguage; DWORD dwInitialFrames; DWORD dwScale; DWORD dwRate; /* dwRate / dwScale == samples/second */ DWORD dwStart; DWORD dwLength; /* In units above... */ DWORD dwSuggestedBufferSize; DWORD dwQuality; DWORD dwSampleSize; RECT rcFrame; }AVIStreamHeader; 其中的 FURCC fccType 便包含了 'vids' -video 'auds' -audio 'txts' -subtitle AVI 並沒有說一個 AVI 只能有一個 Audio Chunk List 因此多個聲音軌是完全沒問題的,在下自己就壓過 1 Video + 8 Audio 的 AVI 然而,說到內嵌字幕的多樣性,AVI 就沒有辦法像 MKV/MP4 那樣靈活,充其量也只是讓人能看 什麼卡拉 OK , MV 的,就忘了它吧 -- 除了封裝內容,MKV / MP4 比 AVI 方便(或說惱人)的地方,就是支援動態 Resolution 和 FPS 動態 Resolution 實務上還找不太到有什麼人在使用 但動態 FPS 卻有不少人在影像編碼時用到﹝FPS 隨畫面動態而調整﹞ 過去也有不少伊莉琴斯的魔人們在嘗試這方面的編碼 MP4/MKV 由於在每一個結構內的 Block 都有自己的 Time Stamp,因此只需要調整 Time Stamp 就可以達到動態 FPS AVI 則由於已在 Header 內固定了 FPS 的值,因此只能用固定 FPS 播放 若要實作動態 FPS ,就必須取不同 FPS 的最小公倍數﹝如混合 24/30 後的 120FPS﹞ 在 120FPS 內,屬於 24/30 以外的影像 AVI 如何處理? 答案就是插入 AVI 特有的 D-Frame,也就是 NULL,Player 在看到 D-Frame 後,會自動 忽略它,直到找到下一個 I, P, B 為止 -- 回到最原始發文的問題,會要什麼格式,像在下這種老人家,仍傾向 AVI,再來才是 MP4 最不推 MKV 原因在於 1.編輯軟體的適用性﹝如 Adobe Premiere、TMPGEnc、AVIUtl﹞,仍以 AVI 最高,若 使用 MKV,有很大的機會必須要透過 AviSynth + DirectShowSource 才能動 如果 MKV 內封裝的東西太雜亂,甚至有可能動不了,就必須先把檔案 Demux 成影音 分離檔再另外處理,傷透腦筋。 2.沒有影片倒轉的需求,因此 B-Frame 的原生支援便不是那麼重要,如果有大量 Seeking 的編輯需求,那在下反而會考慮把整個影片都先轉成 HuffYUV 或 Lagarith 再處理,反 而方便些 3.沒有動態 FPS 的需求,是多少 FPS 就多少處理 4.對在下而言,字幕實在不是那麼需要的東西 -- 好吧,我承認我是來幫 AVI 講點話的。 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.190.68
nvalue:一般向收高畫質,成人向收AVI 比較好快轉 05/09 14:08
rabbit190:恩恩(對不起我沒看完 05/09 14:08
nekoares:專業好文推! 05/09 14:11
allfate:這串不是已經禁回了嗎... 05/09 14:13
finaltrial:轉到AVEncode板吧 @@ 05/09 14:16
Gravity113:離題了吧,喪失ACG點 05/09 14:21
hipab:avi anime video introdution 05/09 14:26
scvb:對對,我也是這麼想的 05/09 14:50
understar:嗯 0.0 直接買BD收藏吧 都要收藏當然是最好的藍光實體 05/09 14:52
Xavy:太專業了..所以我end了 (遮臉 05/09 15:13