Use a filter manager like preferred filter tweaker for win7 or radlight filter manager, or graphstudio for earlier os's
I think jagabo has lav setup for this, so try installing lav filters as well
Directshow Filters work with merits (think of them as a hierarchy of order, where higher merit means higher priority). Those with higher merit try to connect first, if that one fails, then it goes down the list
If you render the file in graphstudio, it will show your current directshow filter setup for that file, you can also set merits in graphstudio
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 91 to 120 of 237
Thread
-
-
No, when you use DirectShowSource() , it will use whatever current directshow setup you have installed on that system.
If you render the file directly in graphstudio (not the avs), it will show you the filters used currently
(That's one of the reasons why it's so inconsistent between systems, and why you need to really tweak your directshow setup to use it properly) -
Okay, now another issue, here is the trimming. I can cut the file into smaller piece with the camcorder, it is better, because the short piece can be tested better. The scritp will only work with the original file because of the trimming, or I can use it for any file length? I see there is a value at the trim command, it is a relative value, or absolute?
-
Trim() refers only to that specific source referenced in the avisynth script
e.g.
DirectShowSource("video4.mp4")
Trim(100,200)
This would only apply to "video4.mp4" , and would return frames 100-200. It wouldn't do anything to video1.mp4 or video6.mp4 .
Is that what you are asking? -
I am asking that I splitted the file, I have a shorter first piece now to do these tests. It takes very long to test with the 5 minute file, evey conversion takes 2 and a half hours. It is making me nervous. So I made a smaller piece, I guess I have to add a different trim value. How can I calculate it?
Anyway, the script is still not good. HcGui says: could load Smoothfps.avs. I don't have that file in the plugins. Which filter does that belong to?
By the way, couldn't all this conversion be solved in After Effects? I have downloaded the trial version, I guess if it is possible to do this there, that has all the components that is needed, so what if I'd try that? If that can output a needed file, I don't have to care about the muxing and such. Hmm? -
If you 've already cut the file shorter (for a small test), don't use trim() at all. It's already small enough, correct ?
For .avs files you have to use Import() to load them, not LoadPlugin(). Or just copy & paste the function to the bottom of the script. Smoothfps uses mvtools2.dll , so either autoload it, or LoadPlugin() in the script
Yes, it's possible to do the retiming in AE, but it will take you a while to learn the basics. But the deinterlacing quality is very poor compared to avisynth (might not matter as much since you are resizing to SD DVD). The interpolation is also many times slower than mvtools2 (but not necessarily better quality, unless you use 3rd party plugin, twixtor)
Chances are, that many programs will have problems with these files (the header says 59.94, when it should be 29.97 frame rate, interlaced TFF) -
-
Where did I put? I have no clue! I don't know at all what file is that!
Here is the code that jagabo gave me:
Import("C:\Program Files (x86)\AviSynth 2.5\plugins\SmoothFPS2.avs")
Load_Stdcall_plugin("C:\Program Files (x86)\AviSynth 2.5\plugins\yadif.dll")
DirectShowSource("1z.MP4", seek=false)
AssumeTFF()
AssumeFPS(30000,1001)
Trim(0,10497)
Yadif(mode=1, order=1)
LanczosResize(720,576)
SmoothFPS2(50,1)
SeparateFields()
SelectEvery(4,0,3)
Weave()
The error is regarding the SmoothFPS2.avs. I don't know where it is, because I haven't met this file in my life, LOL! -
Just copy it to the bottom, erase the import line
The function SmoothFPS2 is defined by those lines at the bottom
If you copy just that section, alone in a .avs file, saved it , then placed it somewhere, then you could use Import()
If you are using different file, change the path & filename. If you dont' need the Trim(), erase it, or comment it out (place "#" in front of the line)
Code:DirectShowSource("1z.MP4", seek=false) AssumeTFF() AssumeFPS(30000,1001) Trim(0,10497) Yadif(mode=1, order=1) LanczosResize(720,576) SmoothFPS2(50,1) SeparateFields() SelectEvery(4,0,3) Weave() #requires MVTools function SmoothFPS2(clip source, int num, int den) { super = MSuper(source, pel=2, hpad=0, vpad=0, rfilter=4) backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24)) forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24)) backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3) forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3) backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3) forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3) MBlockFps(source, super, backward_3, forward_3, num, den, mode=0) }
-
Jagabo set the trimming, because the software detected 2x more frames as should have, so are you sure the new file won't be a problem? When I open the new file I have created from the original mp4, the short file, that's length is also not detected correctly. Are you sure trimming is useless?
Reconsider it, and if trimming is needed, tell me how I can calculate what value to write to trimming. If I succeed, I have 6 more mp4 to process, because all this is a full concert, I will have to know how to determine the correct trimming value.
Here is the new file:
https://www.wetransfer.com/dl/aeQsVp4T/883d65a840978752bc23792346e71bf3fe9f6d0a3c115f7...8b3393834db482 -
Are you sure it was 2x more frames, not twice the frame rate? Didn't jagabo say the problem was with your directshow filters?
The file should have 8756 frames. It's about 5 minutes and 50 seconds long, ie 350 seconds. Multiplying by 25 fps gives 8750 frames. It's DirectShowSource() that is screwing up.
I didn't download any of your files, except for the one in the other thread, so I'm not sure what's going on. I know the framerate of the header is incorrect in that file
Moreover, I might have different directshow filter configuration than you. My filters might give different results
I would recommend you fix your directshow filters. Start diagnosing what filters you are using with graphstudio as suggested above -
The essence is that HCGUI detected 2x more frames at the actual amount in the file. After conversion, there was a long period in the file where there was no action, but a still image. And not the whole action was converted, from a 5:50 file, only 5 was action, the other 5 minutes were still image. From 5:50 minutes of concert, the result was 5 minute concert, 5 minute still.
Last edited by Bencuri; 3rd May 2012 at 17:57.
-
Likely, it's a problem with your directshow filters, not hcgui problem
If you open the avs in vdub, and move the playhead, problem still exist? If so, it's likely problem with your directshow setup
If the 1st half was fine, then 2nd half repeated, then that could be a valid reason for using trim()
You would cut the 2nd half off with Trim(). The numbers you would use would be the point it starts to loop
e.g.
0-1000 ----------------->1st part
1001-2000 -------------> repeated 1st part
Then you would use Trim(0,1000) . Of course you would have to adjust the numbers for each file
But I don't recall the other file having that problem, why does it occur with this one only ?Last edited by poisondeathray; 3rd May 2012 at 18:08.
-
VirtualDub is also making error. It detects 2x more frames.
Actually the conversion was not a half full action, half still converstion. What happened:
There was a 5:50 long mp4. HcGUI detected 11 minutes, 2x more frames as should, but the converted file was like that: 5 minutes were converted from the 5:50, the rest 5 minutes in the new file was still image. So there was a 10:00 file as outcome, it contained 5 minutes action from the original, the rest is still. Not like 5:50 action as original, and rest is still. There was always a small portion in the end it didn't convert. So I am not sure this trimming will be useful, because the problem is not that simple. -
I did the conversion with the new script, not good. There is still that ******* still image part, and not the full action is converted. I am getting nervous now. If it wasn't my friends movie, I would delete it right away and forget forever. I was so stupid to agree with him to convert it. Next time I won't deal with people with a PAL only DVD player.
-
So tell me what to do in Graphstudio, how chall I check that damned filter?
-
file=>render media file, select the video (not the avs). The boxes will show you which filters are connect. If you right click on the boxes and select properities it will give you more information
There might be a way to change the fps by re-wrapping; hold on a sec , I'll download that file and check -
Encodeing length is half of that. When I press encode, it starts encoding only half. What the hell is it doing? Is it normal????
Ok try this:
1) Download Yamb beta 2
2) Editing=> Click to Extract Streams, select your MP4 file
3) Extract All Streams to Raw Format, push next. There will be a h.264 and aac file, these are the elementary video and audio
4) Back at the beginning=> Creation => Create an MP4 => add video & audio
5) Important - highlight the video track, push properties, make sure frame rate is set to 29.970, push ok & next (rename the file if you want) . This will copy the new streams into a new MP4 file with the framerate re-written. Hopefully that will fix all the errors with your filters
Test your script on the new file (adjust the script and path so DirectShowSource("newfile.mp4") ), this should have correct frame # and frame rate, unless your directshow filters are really messed up
FFMS2 should work on the re-wrapped file too , if you specify fpsnum, fpsden (this way you avoid directshow)
DGAVCIndex also works on the re-wrapped file
This file "SANY2046.MP4" should have 2912 framesLast edited by poisondeathray; 3rd May 2012 at 18:33.
-
Please tell me what it will do? I don't want to run useless rounds again. What is the outcome of this? Will it do the 60 to 25 conversion?
-
It fixes your framerate problem since you seem to be reluctant to fix your other directshow problems
Since using ffms2 or dgavcindex doesn't rely on directshow , you will get same results as everyone else instead of different
It should have 2912 frames before the frame rate conversion, 2429 after retiming -
Hehe, by the way, I have just noticed, it doesn't matter if trimming is on or not, or what value I set for it. HcGUI always writes the same interval to encoding length. I write, trim 4000. It writes? encoding length: 1200, I write 3000, 1200 again, I write 1000, 1200 again. Is this okay? Whenever I start encoding, no matter what I write to trim, it only wants to encode about 1200 frames. This is not correct, what the hell is it doing?
-
Okay, this is what that GraphSudio gave?
http://www.youtube.com/watch?v=CI7IsjLnGeI&feature=youtu.be
Whatch it please and tell me what to set. I opened Directshow properties, you can see the content. Some words are in my native language, but I guess you know that panel well, so you know which section refers to what. I have no clue how to display my directshow in English. Please, give the the suggestions. -
You no longer have to fiddle with directshow if you follow the instructions above for yamb to re-wrap the file
You can avoid directshow all together = consistent results, not the messed up ones you've been getting
The root problem is the header reads 59.94 on your camcorder clips - so all programs have problems. If you re-write the frame rate information to the proper 29.97, everything should work properly - that's what the procedure above is doing
After you do the steps in post 112, just use the same script, just change the 1st line to match paths and filenames
Code:FFVideoSource("PATH\rewrappedvideo.mp4") AssumeTFF() AssumeFPS(30000,1001) Yadif(mode=1, order=1) LanczosResize(720,576) SmoothFPS2(50,1) SeparateFields() SelectEvery(4,0,3) Weave() #requires MVTools function SmoothFPS2(clip source, int num, int den) { super = MSuper(source, pel=2, hpad=0, vpad=0, rfilter=4) backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24)) forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24)) backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3) forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3) backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3) forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3) MBlockFps(source, super, backward_3, forward_3, num, den, mode=0) }
-
Attached is SmoothFPS2.ZIP which contains SmoothFPS2.AVS. Extract the file and put it in your AviSynth plugins folder. I had previously copied athe function out of that file, and pasted it into the script I gave you.
I was unable to find any combination of source filters and codecs that would correctly handle the MP4 files from that camcorder. The best I could come up with was DirectShowSource() which resulted in 2x the frame rate and 2x the number of frames. Ie, the original video was 10497 frames and 29.97 fps. But DirectShowSource() returned 20994 frames and 59.94 fps. Since the video didn't contain any frames beyoud 10497, frame 10497 was repeated over and over for the second half of the video. My solution was to use AssumeFPS() to fix the frame rate, and Trim() to remove the extra frames.
If you want to see how many frames your video has you can use MediaInfo. It reports the same 2x that DirectShowSource did. You can also use Info() in an AviSynth script.
Code:DirectShowSource("filename.ext") Info()
As poisondeathray pointed out, DirectShow is Windows' A/V subsystem. Using DirectShowSource() is asking Windows to open and decompress the video file for you (as opposed to something like AviSource() where AviSynth itself opens the file, splits the video and audio into separate streams, and decompresses them using installed VFW codecs). Exactly what combination of filters is used will depend on what you have installed on your system. At the start of this thread I was using LAV Filters. But later I switched back to Haali and ffdshow to see if there was any improvement. There wasn't much difference as far as this video was concerned. I also tried using the old version of ffms2 which screwed op some of the feilds/frames, and a newer version which locked up completely. I also tried using Core AVC as the decoder.Last edited by jagabo; 3rd May 2012 at 20:09.
Similar Threads
-
60fps video playback on YouTube
By Chipango in forum Video Streaming DownloadingReplies: 12Last Post: 16th Aug 2013, 18:01 -
How do I convert 60fps to 30fps to halve file size?
By DigitalOxygen.ca in forum MacReplies: 33Last Post: 11th Jul 2012, 21:27 -
ReClock v1.8.7.9 to force every video @ 60fps
By SoberWarlock in forum Software PlayingReplies: 11Last Post: 1st May 2012, 07:50 -
Video shot at 60fps looks like sped-up motion on MAC. Please help
By nastiakru in forum MacReplies: 3Last Post: 18th Jul 2010, 19:45 -
how to convert a subtitle from 25fps to 23.975fps?
By Ankin in forum SubtitleReplies: 2Last Post: 16th Jun 2008, 15:28