ericmckean / webm

Automatically exported from code.google.com/p/webm
0 stars 0 forks source link

When compressed into avi container, WebM Encoder creates invalid video #814

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

1. Connect the following chain in GraphEdit (GraphEdt). 

TestTest.avi -> Avi Splitter -> Avi Decompressor ->Color Space Converter -> YUV 
Transform -> WebM VP8 Encoder Filter -> AVI Mux -> DestTest.avi

Notes: 
YUV Transform here is component from (http://www.gdcl.co.uk/downloads.htm) that 
is (if installed) automatically added coupled by "Color Space Converter" by 
Windows when one connects Avi Decompressor and WebM Encoder. Probably webmcc 
component also should work, but I could not use it due (possibly) to Issue 813

TestTest.avi is any video file added with "File Source (Async)" filter. 
DestTest.avi is file chosen with "File Writer" filter. 

2. Run filter and wait until it's done. 

What is the expected output? What do you see instead?
I expected a new avi with the same number of frames containing vp8 stream. 
Actual avi contains twice as much frames and the frames are double on odd/even 
basis (the frame 1 is the same as 0, the frame 3 is the same as 2)

What version are you using? On what Windows version?
1.0.2
Windows 7 64 bit (32 bit programming environment)

Please provide any additional information below.
If one replaces WebM Encoder with for example Microsoft Legacy Video 1 Encoder, 
the result video is normal in terms of frame count. So the mentioned filters 
chain is nothing special or distorting by its intentions. 

Original issue reported on code.google.com by maxer...@gmail.com on 20 Jun 2014 at 8:32

GoogleCodeExporter commented 9 years ago
Not an expert, but I doubt AVI knows what to do with VP8 alt-ref frames.

http://www.webmproject.org/tools/encoder-parameters/#5-the-alternate-or-construc
ted-reference-frame

For non-Matroska containers (which we don't advise or support), you'd probably 
want to suppress their generation.

Original comment by louquil...@google.com on 1 Jul 2014 at 3:48

GoogleCodeExporter commented 9 years ago
Alternate frames is an interesting explanation. As I see from the link you 
provided they fit good with symptoms I described. Although using explicitly 
SetPassMode(kPassModeOnePass) and SetAutoAltRef(0) doesn't help (also I see 
from the sources that enable_auto_alt_ref is 0 by default). Probably some kind 
of marker (providing no actual data) still passed. 

Original comment by maxer...@gmail.com on 1 Jul 2014 at 8:27