Printable Version of Topic
Click here to view this topic in its original format
Unofficial VirtualDub Support Forums > Codec Discussion > Vdub Can't See X264vfw


Posted by: mbur Mar 4 2011, 11:59 PM
I've just downloaded and run the new installer for Bugmasters x264vfw: (x264vfw_30_1867bm_26400_fix.exe at
http://www.mediafire.com/?pn2j9hspsihs7ie)
I can't get Vdub to use it. I enabled the virtualdub 'hack' in the x264vfw config
My h264 encoded videos load and 'run' but the screen is blank.
I can find key frames and 'direct stream copy' but I can't see what I am doing.
The original and cut up bits display OK in videolan.
File info says Vdub is using the ffdshow (avc1) codec.
I've tried forcing the video handler FOURCC code to H264
Did I install x264vfw in the wrong place?
I'm using vdub 1.10.0.

Posted by: mbur Mar 5 2011, 01:39 AM
Update. I just found the x264vfw codec in my encode options. Used it to re-encode some xvid stuff I had and all seems well with that.

When I checked the file info of my newly re-encoded videos I see that the decompresser used depends on what version of virtualdub I am Using.
Vdub 1.9.10 says it used the 'x264vfw - H264/MPEG-4 AVC codec'.
Vdub 1.10.0 says 'ffdshow video codec (H264)' on the same video.

Both versions will direct stream copy and re-re-encode the video compressed with virtualdub/x264vfw.

Some explanation:
I am trying to cut up some MOV videos without re-encoding. Vdub 1.10.0 with the plugin will read and display but can't repackage these MOV files to AVI. The error message says the codec isn't compatible with AVI.

BUT I managed to direct stream copy these files to an AVI container with ffmpeg.exe. Vdub is happy to process these files with some limitations.
1) you can't see anything.
2) you can direct stream copy and view your efforts with videolan.
3) if you re-encode (with a format compatible codec;) the result is a black video.



Posted by: ale5000 Mar 5 2011, 01:54 AM
First, why don't you use the latest version of https://sourceforge.net/projects/x264vfw/files/? Currently it is x264vfw_32_1913bm_27769

Second, go in the vfw configuration of ffdshow-tryout and disable H.264/AVC so x264vfw will always be used.

PS: Can you post a video "direct stream copied to an AVI container with ffmpeg.exe"?

Posted by: mbur Mar 5 2011, 10:44 AM
1/ Latest version of x264vfw acquired.

2/ Ah ha! We are now returning x264vfw in the file info in vdub 1.9.10 and 1.10.0

But sadly the blackness continues.

I actually did step 2/ first and when that didn't solve the blackout problem I updated x264vfw to x264vfw_32_1913bm_27769. I then checked and unchecked the 'virtualdub hack' checkbox.

The test file is here: http://www.mikesmusic.biz/vdub/h263blanktest01.avi

It's 20MB so I won't keep it there forever :-(

Posted by: ale5000 Mar 5 2011, 11:35 AM
I cannot download the file, it say 403 forbidden.
The "virtualdub hack" isn't related to your problem and I suggest to keep it enabled.

Posted by: mbur Mar 5 2011, 01:15 PM
That's odd
try this one.
http://www.mikesmusic.biz/vdub/h264test02.avi
It's 491208 bytes, only 20 frames.

Posted by: ale5000 Mar 5 2011, 01:25 PM
Same problem.

Posted by: mbur Mar 5 2011, 01:34 PM
Here is the short one. May it please the digital gods!

http://www.mediafire.com/?iedz6jbqtaih4na

Posted by: ale5000 Mar 5 2011, 02:22 PM
It is a bit too short, it doesn't even play in MPC-HC.
Do you have one with duration of about 5 seconds?

Posted by: mbur Mar 5 2011, 02:46 PM
Here we go. three test files:

http://www.mediafire.com/?xpv6hzl8t40w1

The last one is about 5 seconds.

Posted by: BugMaster Mar 6 2011, 12:07 AM
mbur
The problem was non-standard format of this AVI-s (more like as H.264 in MP4). They used not Annex B format and global params (SPS/PPS) in extradata of BITMAPINFOHEADER structure.

Try this version http://www.mediafire.com/?2r90apphjh2r4br. It must decode such streams.

By the way did you get this AVI-s directly from camera or muxed them with ffmpeg (because they have finger prints of libavfilter)?

P.S. Smart rendering (while encoding with x264vfw) wouldn't work correctly on such streams.

Posted by: ale5000 Mar 6 2011, 01:33 AM
@BugMaster: Thanks, the problem of black video is completely fixed.

Posted by: mbur Mar 6 2011, 03:04 PM
Oh joy! it works!!
@BugMaster: the original off the camera is an MOV. I repackaged with ffmpeg.exe
in a batch file like so:

CODE
echo off
echo hello
IF EXIST %1 GOTO DOJOB

ECHO No Job
PAUSE
GOTO JOBDONE

:DOJOB

C:\drivers\ffmpeg2\bin\ffmpeg.exe -vcodec copy -s 848x480 -acodec pcm_s16le %1.newercopy.avi -i %1

IF ERRORLEVEL 1 ECHO.  Error 1
IF NOT ERRORLEVEL 1 ECHO. no error
pause

:JOBDONE
EXit

The -s 848x480 thing is needed but is ultimately ignored!

@ale5000: I get bad stuttering audio and 'slow-motion' video viewing "h263blanktest01.avi" in virtualdub. Same with "h264test03.avi" but not nearly as bad. 01 is 1280x720 frame-size and 03 is 848x480. My processor is maxed out in both cases so no surprise there.

VLC displays both videos and derivative videos (cut up by virtualdub) with no problem. The CPU workload is about halved in my estimation.



Posted by: mbur Mar 6 2011, 06:01 PM
I'll put the original MOV of "h263blanktest01.avi" in here

http://www.mediafire.com/?xpv6hzl8t40w1

It's called 966_0308.MOV

When I load it into Virtualdub (with input filter installed) and try to direct stream copy I still get the error message but I'm good to go with the AVI's now.

Thank you.

Posted by: ale5000 Mar 6 2011, 08:03 PM
There isn't someone that is really working on the Quicktime plug-in, so there aren't so much hopes for the .mov

Edit: It is possible that the author will update the input plugin in the future.

Posted by: Placio74 Mar 7 2011, 02:06 AM
@mbur

Add -vbsf h264_mp4toannexb to FFmpeg command line.
Also... setting frame size (when copy video), rather is not necessary for current ffmpeg builds.

QuickTime input plugin does not support Direct stream copy mode (can't copy A/V without recoding).

Change container to Matroska (from MOV to MKV) using MKVtoolnix and try fccHandler's Matroska input plugin.

Posted by: ale5000 Mar 7 2011, 06:03 AM
This file remuxed to .mkv doesn't work well: http://www.mediafire.com/download.php?9mct26d5w5lbvtu

The first 13 frames of the video are grey (in VirtualDub).

Posted by: Placio74 Mar 7 2011, 08:29 AM
Hmm... yes, when re-mux directly using MKVtoonix (MOV>MKV).
However, I did not notice gray frames after re-mux MOV>MKV using FFmpeg.
Also, after demux to raw A/V (using My MP4Box GUI) and mux to MKV (MKVtoolnix).

Posted by: mbur Mar 7 2011, 08:59 PM
QUOTE (Placio74 @ Mar 7 2011, 02:06 AM)
Add  -vbsf h264_mp4toannexb  to FFmpeg command line.
Did that and can't see anything! Even in VLC! I'm taking it out. What is it?
QUOTE (Placio74 @ Mar 7 2011, 02:06 AM)
Also... setting frame size (when copy video), rather is not necessary for current ffmpeg builds.
Where did you get ffmpeg? I found it very hard to tell which version was the latest.
QUOTE (Placio74 @ Mar 7 2011, 02:06 AM)
QuickTime input plugin does not support Direct stream copy mode (can't copy A/V without recoding).
Yes. The question is 'Will it ever?' From what Ale5000 tells us probably not.
QUOTE (Placio74 @ Mar 7 2011, 02:06 AM)
Change container to Matroska (from MOV to MKV) using MKVtoolnix and try fccHandler's Matroska input plugin.
I seem to recall trying this route and not having much joy. That's when I was emboldened to download and run ffmpeg.exe. thanks to BugMaster and Ale this has worked out well for me. The repackage runs a 100's of frames per second. I can see enough in Virtualdub to do my cuts and I can see my work in VLC. I have the vdub 1.10.x external encoding thing If I want to lose some quality ;-) and squash my files into a tiny MKV or whatever.. Life is good!
The external decoder is misleading in that the progress reporting overstates the output data size by a factor of 20 or thereabouts. It is possibly telling me the size of the data stream before it hits the H264 compressor. But the final file sizes are impressively small and that is what is wanted!

Posted by: ale5000 Mar 7 2011, 10:00 PM
QUOTE (mbur @ Mar 7 2011, 09:59 PM)
QUOTE (Placio74 @ Mar 7 2011, 02:06 AM)
Also... setting frame size (when copy video), rather is not necessary for current ffmpeg builds.
Where did you get ffmpeg? I found it very hard to tell which version was the latest.
Try here: http://www.bizzeh.com/ffmpeg/free/
(look at the date)

QUOTE (mbur @ Mar 7 2011, 09:59 PM)
The external decoder is misleading in that the progress reporting overstates the output data size by a factor of 20 or thereabouts.  It is possibly telling me the size of the data stream before it hits the H264 compressor.
I don't quite understand what you are saying.
Can you please explain?

Edit: PS: Now there is an AAC ACM codec, so you can use "copy" for audio too in ffmpeg command line.

Posted by: DarrellS Mar 8 2011, 05:07 AM
QUOTE
Edit: PS: Now there is an AAC ACM codec, so you can use "copy" for audio too in ffmpeg command line.


Are you referring to the external encoder? I tried creating an aacpassthrough encoder with ffmpeg and it did not work. I thought it should work but it didn't.

Video Encoder
C:\Tools\x264.exe
--crf 21 --preset medium --tune film --demuxer raw --input-csp i420 --input-res %(width)x%(height) --fps %(fpsnum)/%(fpsden) -o "%(tempvideofile)" -
%(outputname).264

Audio Encoder
C:\Tools\ffmpeg-latest-mingw32-static\bin\ffmpeg.exe
-i - -acodec copy "%(tempaudiofile)"
%(outputname).aac

Multiplexer
C:\Program Files\MKVtoolnix\mkvmerge.exe
-o "%(outputname)" --compression 0:none --default-duration 0:%(fpsnum)/%(fpsden)fps "%(tempvideofile)" --compression 0:none "%(tempaudiofile)"

Posted by: Placio74 Mar 8 2011, 06:28 AM
QUOTE (mbur @ Mar 7 2011, 10:59 PM)
Did that and can't see anything! Even in VLC! I'm taking it out. What is it?

Uh, indeed. I was looking only for decoding in VD.

QUOTE (mbur @ Mar 7 2011, 10:59 PM)
Where did you get ffmpeg?  I found it very hard to tell which version was the latest.

http://ffmpeg.arrozcru.org/wiki/index.php?title=Builds

Posted by: ale5000 Mar 8 2011, 08:31 PM
QUOTE (DarrellS @ Mar 8 2011, 06:07 AM)
QUOTE
Edit: PS: Now there is an AAC ACM codec, so you can use "copy" for audio too in ffmpeg command line.


Are you referring to the external encoder? I tried creating an aacpassthrough encoder with ffmpeg and it did not work. I thought it should work but it didn't.

No, I was only saying that you can use "-acodec copy" instead of "-acodec pcm_s16le" in your batch file that convert .mov to .avi.

Powered by Invision Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)