|
|
| whugemann |
| Posted: May 3 2005, 02:03 PM |
 |
|
Unregistered

|
I have a MPEG YV12 coded video where a digital stop watch is included in every halfframe. (This was produced by a character generator during recording.) I need to extract 50 fps (it's PAL video) in order to get a sharp view on the last two digits on that stop watch (tens and hundreds of a second).
So far I made the following attempts:
1) Opening it with VirtualDubMod, dumping 25 fps and post-batch-processing the frames with IrfanView (extraction of upper and lower halfframes): Works, but is rather tedious.
2) Opening it with VirtualDub by use of AVIsynth, i.e.
DirectShowSource("videofile.mpg") BoB() ConvertToRGB()
This gives blurry results, it's probably the BOB filter not functioning correctly on YV12 video, but I don't see why. If I leave the last line of the AVS-file, VirtualDub tells me that it cannot locate the decompressor for the format YV12.
How do I get this script running? |
 |
| NuPogodi |
| Posted: May 3 2005, 02:41 PM |
 |
|
Advanced Member
  
Group: Members
Posts: 536
Member No.: 6558
Joined: 1-October 03

|
| QUOTE (whugemann @ May 3 2005, 08:03 AM) | | How do I get this script running? |
1. Do not use DirectShowSource... my experience tells that it often results in the a&v desync problems. i prefer to use DGIndex, to create project *.d2v and to open this file in AviSynth by using the MPEG2Dec3.dll.
2. There are no "ideal" deinterlacers. Read this article and select a method which can satisfy your requirements. The described filters for AviSynth may be downloaded here
| QUOTE | | If I leave the last line of the AVS-file, VirtualDub tells me that it cannot locate the decompressor for the format YV12. |
Helix YUV Codecs v1.2
-------------------- Optimists believe that they live in the best of existing worlds. Pessimists are afraid of that's right... |
 |
| whugemann |
| Posted: May 3 2005, 04:56 PM |
 |
|
Unregistered

|
Thanks for the reply. Especially the hint on the YV12 Codec is very useful for me.
In most of my projects audio is unimportant, such are a&v desync problems. Thus for the moment, I would like to use DirectShowSource() - but it is good to be aware of that problem in the future.
I did some further investigation and found it not be be a problem of the de-interlace filter: The result of DirectShowSource() already mixes the two halfframes to a blurry picture.
If I use VirtualDubMod to open the MPEG video, I can perfectly de-interlace it and place the two halfframes side by side, both of them displaying the digits of the stop watch sharply. I can then resize it horizontally to get the correct aspect ratio again, dump the frames and cut them in two by batch processing with IrfanView.
But, as far as I see, there is no way to double the frame rate in VirtualDubMod and dump the halframes in the correct order like you can do with a de-interlace filter in AVIsynth -> VirtualDub. If this would be possible, this would be a possible solution. Otherwise I have to optimise the AVIsynth input - possibly by converting the video to d2v first as you proposed. |
 |
| neuron2 |
| Posted: May 3 2005, 04:59 PM |
 |
|
Advanced Member
  
Group: Members
Posts: 1244
Member No.: 5294
Joined: 18-July 03

|
| QUOTE (NuPogodi @ May 3 2005, 08:41 AM) | | i prefer to use DGIndex, to create project *.d2v and to open this file in AviSynth by using the MPEG2Dec3.dll. |
That's been renamed to DGDecode.dll for a long time now. |
 |
| i4004 |
| Posted: May 3 2005, 07:38 PM |
 |
|

Advanced Member
  
Group: Members
Posts: 2432
Member No.: 4935
Joined: 24-June 03

|
| QUOTE | | I have a MPEG YV12 coded video where a digital stop watch is included in every halfframe. (This was produced by a character generator during recording.) I need to extract 50 fps (it's PAL video) in order to get a sharp view on the last two digits on that stop watch (tens and hundreds of a second). |
avs separatefields().assumetff (or assumebff depending on the source)
but it won't be sharp, as graphics are generally not projected on fields alone. the resolution of 50hz system is exactly 1/50 of a second so don't expect a great precision there. intervals smaller than that will just get blurred. so tens of a second you'll see....hundreds you won't.
-------------------- my signature:
 |
 |
| whugemann |
| Posted: May 3 2005, 09:23 PM |
 |
|
Unregistered

|
I made ít with AVIsynth by use of the PLugIn MPEGDecoder.dll (http://nic.dnsalias.com/MPEGDecoder/MPEGDecoder_YV12.zip)
This seems to avoid the difficulties produced by DirectShowSource().
The script looks now like this:
MPEGSource("filename.mpg") AssumeTFF BoB()
But I would like to make my problem clear at last. Let us assume the hundredth to be '2' and '4' in two consecutive haltframes. Then the character generator writes
== = = = = ====
into the fist halfframe and
++ + + ++++ + +
into the second halfframe. (BTW: how do I switch off the prop font and the deletion of double blanks?)
This gives
== ++ = = + + = ++++ = + ==== +
in the complete interweaved frame. The halfframes have to be separated such that you can see the numbers correctly again.
The mess was that DirectShow smeared (or blurred) the two halfframes such that they could not be separated precisely.
Thanks for all your hints that at last have lead me into the correct direction! |
 |