[請問] 想請問關於flv檔跟H263編碼的問題

看板AVEncode作者 (Soar)時間18年前 (2007/11/03 00:27), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
目前手上有個flv檔,視訊編碼是Sorenson H.263,音訊編碼是mp3, 23fps 不過我想問的是,我現在想切割flv檔成小片段 利用flvtool2來下參數,不過由於flv檔本身的keyframes只有固定幾個times 要是我切割的片段,中間不包含任何一個keyframe的時間 這個片段就完全無法播放 ex: flvtool2 -CUa -i 5000 -o 14000 input.flv output.flv (把input.flv的5秒~14秒的片段切出來另存成output.flv) 因為keyframes的time可能是0, 4.123, 15.013, ....所以我切的片段不包含keyframe 這樣影片就完全無法播放 我知道這應該是跟H263編碼有關,自己猜測是因為切出來的部份沒有所謂的I frame 所以在decoder的過程中沒有可以refrence的frame,因次無法正常解碼 不過片長9秒間,沒有任何一個I frame感覺還廷怪得 我承認當初修Video Coding的時候不夠認真 這個部份沒學好,可是就我所知像MPEG1的視訊編碼裡頭假如是23fps 在GOP是M=15,N=3的時候,好歹一秒裡面有一個是I frame 像這樣經過9秒都沒出現一個I frame,真的會是這樣子的情況嗎? 我知道H263是為了在一般視訊會議傳輸時,能夠利用low bitrate來編碼並保持一定畫質 所以可能encoder端會設計的比較特殊,而自己找了許多文獻來看 只看到說H263編碼的時候,有多了哪些模組,而這些模組的效用是如何如何 (對不起,英文太破,看到200多頁的spec.只是概略翻一翻,沒細讀) 我真的很想知道,會是因為一般視訊會議的時候,因為人頭不太會亂晃 所以encode的時候,很可能真的設計成在一個I frame後面, 連續個好幾秒都只用P or B frames來編碼就好了嗎? 等到畫面有劇烈變化的時候,再來一個新的I frame就好 不好意思,寫了那麼落落長的文章,其中我盡可能把我能表達的都說清楚 若是有錯誤,還請知道的人指正,我會虛心受教,當然若是有人很熟H263編碼的人 能夠碰巧看到這篇文章且回答我心中的疑惑,我會非常感激, 不過可惜我沒多少P幣可以給你了...只能感激在心裡。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.175.30.212

11/04 00:27, , 1F
現今的有損(Loosy)視訊編碼都是I+P+B這樣子的超長GOP,是
11/04 00:27, 1F

11/04 00:32, , 2F
這種方式才能提高壓縮率,純I的大多是無損編碼(Lossless)
11/04 00:32, 2F

11/04 00:35, , 3F
在使用。
11/04 00:35, 3F

11/04 01:14, , 4F
你誤會我的意思了,我只是想問H263的I有可能隔了好幾秒才出
11/04 01:14, 4F

11/04 01:16, , 5F
現嗎 因為對H263 encoder不熟 都只能用猜測的
11/04 01:16, 5F

11/04 01:20, , 6F
很多codec最大I間隔設定都是fpsX10,所以有可能9秒內無I
11/04 01:20, 6F

11/04 01:23, , 7F
或該說是encoder的建議設定是如此
11/04 01:23, 7F

11/04 01:50, , 8F
恩 受教了 原來現在encoder這麼厲害了
11/04 01:50, 8F

11/04 01:51, , 9F
不過要是在fps*10間 遇到場景變化怎麼辦?
11/04 01:51, 9F
文章代碼(AID): #17Aq_wV6 (AVEncode)