Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

Pages: (2) [1] 2  ( Go to first unread post )
Flv Input Plugin
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
Moitah
Posted: May 3 2008, 02:36 AM


Advanced Member


Group: Members
Posts: 210
Member No.: 8955
Joined: 20-February 04



I finally finished a new version of my FLV input plugin biggrin.gif. It requires at least VirtualDub 1.8 because it uses the new VBR audio support. I added code to insert drop frames to help maintain constant framerate; this actually works great for the majority of variable framerate files I've seen (i.e. originally constant framerate but the encoder skipped some duplicate frames; it's not designed or tested for videos with mixed framerates). I also implemented the File Information window. Enjoy!

FLV Input Plugin - v1.1.0 (Binary and Source)
 
      Top
Placio74
Posted: May 3 2008, 03:54 AM


VideoAudio


Group: Members
Posts: 1216
Member No.: 21485
Joined: 24-May 07



Great!
Thank You very match.

Work with most FLV files, but possible some exceptions.

With this:
user posted image user posted image
no problems with A/V synchro (even if used Direct stream copy).
smile.gif


With this:
user posted image user posted image
ehm... possible desynchro A/V.
But enought set Change so video and audio durations match (+ eventually Convert to fps - but not necessary) and it's OK.
But... why now it's 66.667 FPS? Before (older plugin) just 29.229 FPS... huh.gif

--------------------
VideoAudio.pl - Serwis o technologii wideo & audio
 
     Top
Moitah
Posted: May 3 2008, 04:04 AM


Advanced Member


Group: Members
Posts: 210
Member No.: 8955
Joined: 20-February 04



I guess I should add some way to disable the padding, or configure the way it detects the framerate.

EDIT: To answer your question about why it chose 66.6667 as the framerate, it looks for the smallest gap between the frame timestamps. This video must have had one or more places where the difference between frames was only 15 ms. FLV Extract's "True Framerate" is calculated pretty similarly, but it ignores small gaps that make up less than 10% of the frames. I didn't include this check in the plugin because it actually works better this way with some files, but some apparently not smile.gif.
 
      Top
phaeron
Posted: May 3 2008, 06:12 AM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



I've thought about this a bit, and I think that the minimal distance between frames n and n+2 is probably more useful. If you assume a uniform distribution of error of up to t/2, then the minimal distance for adjacent frames can be zero, whereas two apart gives you something slightly more informative.

 
    Top
Moitah
Posted: May 3 2008, 08:04 PM


Advanced Member


Group: Members
Posts: 210
Member No.: 8955
Joined: 20-February 04



That home_robot.flv file is really strange. The choice of framerate is okay after looking at the video timestamps. The problem is that the audio stream is timestamped incorrectly. The last audio timestamp is 1:45.510, but the length of the audio is only 1:43.183. Although the synch is fine in Media Player Classic, I hear a bunch of chirping, so maybe DirectShow is feeding some extra bytes to the audio decoder to compensate for there not being as many MP3 frames as you'd expect from looking at the timestamps. I think "Change so video and audio durations match" is indeed the best way to handle this video.

So I should mention that this is one case where the "Max Synch Error" calculation is misleading, because it assumes that the audio is timestamped correctly. Also, it doesn't take into account video and audio streams whose timestamps start at different times. The FLV specification does say that each stream's timestamps should always start at 0, but there are some rare files where this isn't the case. Basically, "Max Synch Error" just looks at synch error that's caused by having to play back the video at constant framerate rather than variable. It is actually calculated for both the original and drop-padded streams, and the better of the two is chosen (i.e. drops will only be inserted if it helps the synch) [EDIT: Not true as of 1.1.0, took it out when I was restructuring some code, but you can control the VFR->CFR conversion with the extended options dialog now], but I haven't seen any case where inserting drops makes the synch worse.
 
      Top
trodas
  Posted: May 5 2008, 09:30 AM


Advanced Member


Group: Members
Posts: 88
Member No.: 22291
Joined: 22-October 07



Well, looks like something more usefull in the terms of FLV video is finally there, thank you! tongue.gif

Now I just have a simple problem - the VirtualDub is complaining that "Unable to locate a video codec to decompress the video track." ... And to this moment I thought that my ffdshow tryout revision 1625 from Nov 18 2007 should do the job. Or do I need to configure it somehow, or...?

I should mention that FLV play well for me in BSplayer/MediaPlayerClassic and VLC player (and probably others too) and the options for FLV are enabled and even the FLV splitter is installed, from the guide there:
http://www.afterdawn.com/guides/archive/ho...y_flv_files.cfm

--------------------
"It is dangerous to be right in matters on which the established authorities are wrong." - Voltaire
...just keep folding, just keep folding... :) my config - my caps
 
         Top
stephanV
Posted: May 5 2008, 09:49 AM


Spam killer ;)


Group: Moderators
Posts: 4348
Member No.: 8917
Joined: 18-February 04



Did you enable the decoding in the VFW configuration of ffdshow as well?

--------------------
useful links:
VirtualDub, Input plugins and filters, AviSynth, AVI-Mux GUI, AC3ACM by fcchandler, VirtualDub FAQ
 
    Top
trodas
  Posted: May 5 2008, 12:41 PM


Advanced Member


Group: Members
Posts: 88
Member No.: 22291
Joined: 22-October 07



Aaaargh! My bad. No sad.gif

QUOTE
ffdshow VfW > ffdshow video encoder configuration > Decoder > Codecs > FLV1 = libavcodec / VP6F = libavcodec


Ah, that! Thanks a bunch! I never imagined this could be disabled... but it is! Thanks a lot!

user posted image

wink.gif

--------------------
"It is dangerous to be right in matters on which the established authorities are wrong." - Voltaire
...just keep folding, just keep folding... :) my config - my caps
 
         Top
Moitah
Posted: May 8 2008, 03:33 AM


Advanced Member


Group: Members
Posts: 210
Member No.: 8955
Joined: 20-February 04



Version 1.1.0 released! Download link is the same, see first post.

It adds an extended options dialog where you can disable VFR->CFR padding, set it to automatic (default), or specify a target framerate.

It should work in Windows 9x again (_wfopen, oops) but still supports Unicode filenames in NT (forgot to mention I added that in 1.0.0).

Also, in addition to the maximum synch error, the median and average synch error are now displayed.
 
      Top
ale5000
Posted: May 2 2009, 07:37 PM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



@Moitah: Are you still working on this? There is a possibility to have h264 support?

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
yawnmoth
Posted: May 24 2009, 04:01 PM


Member


Group: Members
Posts: 13
Member No.: 22025
Joined: 30-August 07



I'm wondering the same thing. When I try to open a h246 encoded video I get the following error:

File "..." does not have a video stream.

That said, FLVExtract (also by Moitah) seems to work just fine.
 
     Top
Placio74
Posted: May 24 2009, 05:58 PM


VideoAudio


Group: Members
Posts: 1216
Member No.: 21485
Joined: 24-May 07



QUOTE (yawnmoth @ May 24 2009, 06:01 PM)
I'm wondering the same thing.  When I try to open a h246 encoded video I get the following error:

File "..." does not have a video stream.

Current FLV input plugin support only H.263/FLV1 and VP6F/FLV4 video (and of course must have installed required VfW codec).
(I do not think that this has changed.)

QUOTE (yawnmoth @ May 24 2009, 06:01 PM)
That said, FLVExtract (also by Moitah) seems to work just fine.

Current FLV Extract can extract raw H.264/AVC video stream (after, can use Yamb (MP4Box) or mkvmerge and mux to MP4 or MKV container).


For FLV with AVC/AAC...
- use DirectShow input driver (if have installed required DirectShow filters - latest FLV Splitter and ffdshow or other decoders for AVC/AAC)
or...
- Avisynth script (with used DirectShowSource, same as above)
or...
- re-mux to MP4 container (can use QuickTime input plugin or other editor (Avidemux for example))

--------------------
VideoAudio.pl - Serwis o technologii wideo & audio
 
     Top
Moitah
Posted: May 28 2009, 09:05 PM


Advanced Member


Group: Members
Posts: 210
Member No.: 8955
Joined: 20-February 04



Unfortunately, I'm not planning support for H.264/AAC in FLV Input Plugin. I won't say it's not going to happen though. Maybe if I get really bored or someone offers a decent bounty smile.gif.
 
      Top
hayamiya
Posted: Jul 7 2009, 12:44 AM


Member


Group: Members
Posts: 21
Member No.: 24091
Joined: 22-August 08



Hi, I don't know if my problematic files are in H.264 as I can't find which codec are using. Indeed, FLV Player doesn't recognize anything:

user posted image

And the file headers don't help either.

It's a YouTube file, but, anyway, I thought that there were in VP6, not in H.264. Here a sample file:

http://www.megaupload.com/?d=YQLDF7JJ
 
     Top
Moitah
Posted: Jul 7 2009, 01:40 AM


Advanced Member


Group: Members
Posts: 210
Member No.: 8955
Joined: 20-February 04



That file contains H.264 video and AAC audio, which is common for YouTube now.
 
      Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
26 replies since May 3 2008, 02:36 AM Track this topic | Email this topic | Print this topic
Pages: (2) [1] 2 
<< Back to VirtualDub Filters and Filter Development