I typically use Windows so that may be why I'm having such a hard time with this, but I've spent literally the past 6 - 7 hours straight trying to figure out how to get my video files imported into iMovie and so far have had zero success. I have a new mac and after playing around with imovie for a few hours I've figured out how to get it to do all the things I want to do to my videos...except one, which is to remove the "dead/stuck pixels" that show up as white or red squares in the same spots in all my videos. I've found that using the Delogo filter in VirtualDubMod does eliminate all the stuck pixels but I don't know of any way to do this within iMovie. So what I've been trying to do is open the original video files with VDubMod, use the Delogo filter to remove the stuck pixels, then save the videos and import them to iMovie where I'd apply all the rest of the specialized edits I want to make. The problem is that VDub only exports as AVI and iMovie apparently does not read AVI.
I googled this and found several workarounds/solutions but none have worked for me. I've already imported the AVI files to iPhoto and tried getting iMovie to read them from there...no luck. I've already tried exporting the videos from Vdub as an "Old Format AVI" which one site said would get iMovie to recognize them...no luck. I installed Perian on the Mac...no luck. I've tried clicking and dragging, going to File - Import, using different Vdub compression codecs, nothing has worked. I know I can probably convert the AVI files to a Quicktime format and then import them into iMovie from there but I'd rather not since a.) these are all HD videos so I'd like to retain as much quality as possible, aka not saving them three separate times and b.) the HD video files are huge and exporting them from VirtualDubMod takes hours on its own so I can imagine that converting them after that would make an already super-long process even longer.
So is there something else I'm missing? Maybe a way to remove the stuck pixels within iMovie or a way to get iMovie to read AVI files or some lossless but reasonable way to encode the AVIs to a QT format without 100+GB file sizes and 6+ hour encoding times?
Also, might be a bit off topic, but I've been using the HuffYUV codec when saving the avi files from VDubMod in order to retain the quality...it's a very long process with giant files but if there's a better codec or method I could be using I'd love to hear it.
+ Reply to Thread
Results 1 to 18 of 18
quicktime usually requires video to be MOV wrapped
quicktime on windows can read fourcc "v210" in AVI . It's an uncompressed 10-bit 4:2:2 format - so filesizes are huge. But it's about the only AVI wrapped format that QT can read .
I suspect imovie would be able to read it too. I would try a small sample to test out the workflow first
You can download "drastic codecs" it comes with an installer and it shows up in the vdub compression menu. Make sure you select the "v210" variant
Another option might be to setup a frameserver from vdub, into something that can export MOV wrapped video. Maybe with ffmpeg
iMovie won't accept that either.
Any suggestions for what lossless or at least high quality codec I should be using to export out of VDub and/or what similar codec I should be using to encode to from AVI to Quicktime once that's done? Looks like that's about my only option at this point
If you've used filters in vdub, like delogo, then you are working in 8bit RGB, so the highest quality export will be a RGB export, either uncompressed or losslessly compressed (e.g. lagarith, ut video codec) - these are AVI formats exported from vdub
The highest quality 8bit RGB MOV format will be animation codec (with the slider all the way to the right if you are using a GUI like quicktime). This is lossless and imovie should accept it because it's a native QT format (but I would test a small sample first). You could use ffmpeg (cross platform, commandline) to encode to animation codec it will accept uncompressed RGB export from vdub as the input format. (ffmpeg won't accept ut video codec, but beta builds might accept lagarith)
ffmpeg -i input.avi -vcodec qtrle -acodec copy output.mov
There are some gui's for ffmpeg, you can try ffcoder, avanti, there are dozens more. Because it's commandline, you can setup batch scripts (e.g. convert all the files in a folder by double clicking a simple .bat file)
Avanti but so far haven't been able to find anything on it mentioning Animation codec.
You can't use animation codec in vdub directly, because it's a quicktime format (it only exists in MOV, and vdub cannot export MOV or access quicktime encoding options)
You will have to go through 2 renders, unless you want to use the vdub frameserver, avisynth and qtoutput() to write the file. It might take a bit to learn the basics of avisynth, so I will outline the 1st option
1) export uncompressed AVI from vdub (select no compression in the compression menu for video and audio) .
2) download ffmpeg binary for windows , you can find pre-compiled ones here
3) put copy of ffmpeg.exe into the same directory folder as your exported AVI files from vdub
4) open notepad in the same directory as the AVI files folder, copy & paste the following text, save it, rename the extension from .txt to .bat
for %%a in ("*.avi") do ffmpeg -i %%a -vcodec qtrle -acodec copy %%~na.mov pause
*do a quick test on a small sample first, to see if it works ok in imovie, before you go rendering a bunch of files. This works for final cut pro on the mac, so I assume it works ok in imovie
Last edited by poisondeathray; 30th Aug 2011 at 20:09.
For the 1 render method , I will assume you know how to use the basics of avisynth , and have it installed with the qtsource plugin, and quicktime installed
1) in vdub start the frameserver , file=> start frameserver. Change the name to something.avi (e.g. "signpost.avi") . This makes a "dummy" fake AVI that other programs can use. Frameserving allows you to connect vdub to other programs, so you can write MOV "directly" from vdub. To the other programs the "dummy" AVI looks like a video, but it's only a few kb big.
2) create avs script, save it
AVISource("signpost.avi") QTOutput("output.mov", format="rle", audio=1)
Is this what I should be seeing?
Right now I'm only on Frame 2247 and there are 6,000 frames in the video, so I guess this is a pretty slow process no matter what. I don't suppose there's another way or another
It looks like it's working correctly, but you should used a smaller file as a test first, like 100 frames .
If you use a lossy format, it will be faster, and smaller filesizes. Maybe something like mjpeg with q=1 (the lower the quantizer, the larger the filesizes, the higher the quality, but even at q=1, it will be many times smaller than animation)
The frameserving method will be faster, because it only renders once from vdub. But if you only have 1 file to do , and have already exported from vdub uncompressed AVI then it doesn't matter
The method of opening the original raw video in Vdub, applying the filter, exporting it as an uncompressed AVI then running the .bat file to convert that uncompressed AVI to a MOV with Animate codec *did* work for two of my videos and I was able to process them just fine in iMovie afterward. However, that method did *not* work for two of my other videos which were a bit longer, about 5 minutes each...I got this error for both of them:
Anything I can do about this? Any other way to encode them to the animation codec without it failing due to the length of the videos?
I've already applied the filter to all of the original videos in Vdub and exported them as uncompressed AVI files so now I just need to know how to get them into iMovie without losing more quality. I'd rather not start over from scratch with a different method but I will if necessary.
Not sure, it might be a ffmpeg issue. You could try through quicktime (but again, QT cannot open AVI on windows, except for v210/AVI)
Did you export uncompressed 8-bit RGB from vdub or v210 ? If you used v210, QTPro will be able to open it and you can encode to animation through quicktime.
You can still use method #2 on the already exported AVI's from vdub (avisynth will be able to open it regardless), and encode through quicktime using QTOutput() but you have to adjust the AVISource() line to refer to the exported AVI, not the signpost "fake" AVI . These 2 suggestions are under the assumption that QT will produce longer files without timebase errors (I don't know if this is true or not)
Is quality the most important factor to you? Another option you might try that I listed above is using mjpeg. At q=1 you won't be able to tell the difference unless you go frame by frame and possibly zoom in. Try it on a few frames or a small clip. mjpeg in MOV will definitely work in imovie . The syntax is the same, just change -vcodec to mjpeg and specify a quality factor "qscale" (again, lower = lower quantizer = higher quality = larger filesizes)
for %%a in ("*.avi") do ffmpeg -i %%a -vcodec mjpeg -qscale 1 -acodec copy %%~na.mov pause
or another option might be png in mov, This is lossless RGB as well, like animation. I don't know if you will run into the same error messages
for %%a in ("*.avi") do ffmpeg -i %%a -vcodec png -acodec copy %%~na.mov pause
or another option might be to split up the larger AVI files before conversion (you can use vdub in direct stream copy mode, should be very fast)
Last edited by poisondeathray; 31st Aug 2011 at 16:07.
VirtualDub, selecting (Uncompressed RGB) under Video -> Compression. The v210 AVI files I made wouldn't open in iMovie or even play in Quicktime on the Mac...not sure what was going on with that.
Going back to Method #2, I'm a bit lost on the whole Frameserver thing. First, I make a AviSynth script (example.avs) to get VirtualDubMod to open the original MOV file -- directshowsource("C:\video.MOV") -- then I drag that avs file into VirtualDubMod, apply the filter and go to File - Start Frame Server. This is where I get confused.
First it says "Frameserver name: [ComputerName/] [example.avs]"
The "ComputerName/" can't be changed and I don't alter "example.avs" either so I then click Start and it asks me to "Save a .VDR signpost for AVIFile handler" so I type in "test" next to File name, click Save and this window pops up and does nothing:
I've tried changing "example.avs" to "signpost.avi" next to "Frameserver name:" and typing in "signpost.avi" in the "Save a .VDR signpost for AVIFile handler" window but in both cases I still get the same result. I also made an AviSynth script containing this code:
AVISource("signpost.avi") QTOutput("output.mov", format="rle", audio=1)
(in the mean time I'll try some of your other suggestions to see if I get anywhere with those instead)
Post the error message
You probably didn't install avisynth, or are missing the qtsource.dll plugin
How did you open the original videos in vdub in the first place (Were they MOV to begin with ?) With directshowsource() ? I would avoid directshow, and open MOV files with FFMpegSource2("video.mov", atrack=-1) , or QTInput("video.mov", audio=1)
Both are external plugins
If you've already exported the AVI files with delogo filters applied, there is no reason to go through the frameserver. The exported AVI file already has the filter applied to it, so you can use those AVI's as the new source for Avisource() . It's a waste of time to re-do the delogo filter stage
First, install avisynth, download qtsource.dll and place in avisynth/plugins folder . You need quicktime installed as well. (I think you need quicktime pro, not sure if it will work with free version)
You would modify the script to accept the vdub AVI, not the dummy avi . If you create the .avs in the same folder, you don't need full file paths e.g. C:\some folder\other folder... Of course, change the filenames to match whatever yours are
AVISource("exportfromvdub.avi") QTOutput("output.mov", format="rle", audio=1)
But just for learning purposes about the vdub frameserver - you use vdub as you normally would importing the original file , then apply the delogo or whatever filters, then use file=>start frameserver. The 1st dialog box frameserver name (shown in your screenshot) doesn't matter, you can click ok . The 2nd dialog asks where to save. That's the important one to rename with .avi extension (it originally has a .vdr extension). I called it "signpost.avi" in the example. That's the "dummy" avi
For the avisynth part, you can open a text file in notepad in the same directory as the video signpost and write the script. Save it. Change extension from .txt to .avs. Play that .avs file in MPC and it will write the MOV . When you get more advanced you will probably want to use avspmod eventually as your text editor
AVISource("signpost.avi") QTOutput("output.mov", format="rle", audio=1)
Last edited by poisondeathray; 31st Aug 2011 at 18:40.
I do have avisynth installed; I didn't have the qtsource.dll plugin inside the avisynth plugins folder, though.
The videos are MOV to begin with and I open them with a directshowsource() avs script.
I downloaded the zip files with ffmpegsource and qtsource.dll in them and extracted them to the avisynth plugins folder and tried again with the frameserver but still had the same result. The error I get when I try to play the avs script with MPC is just red text in the MPC window that says:
AVIFileSource: couldn't open file 'G:\video\signpost.avi'
(G:\video\test.avs, line 1)
Did you install the vdub frameserver? Go into the vdub folder, and double click on auxsetup.exe. Select the option to "install handler"
Sorry I should have mentioned this earlier but I missed it , it is even shown in your screenshot "frameclients installed: none"
Then restart vdub, load your video, apply the filter(s) , and restart the frameserver, try it again...
Make sure the filenames, directory paths match. If the .avs is in a different directory than the "dummy" AVI, you need to specify full path (you can also specify a different directory or hard drive to write the file in QTOutput. It's faster to read and write to a different physical hard drive if you have multiple drives available)
QTOutput("output.mov", format="rle", audio=1)
Last edited by poisondeathray; 31st Aug 2011 at 22:58.
Quicktime and got an error saying it couldn't be opened because it's not a file that Quicktime understands. All Mediainfo says about it is this and nothing else:
Format/Info: Original Apple specifications
File size: 57.4 GiB
What does mediainfo (view=>text) say about the file ? If QT cannot read it, it is likely corrupted or perhaps it didn't finish writing the file (maybe it's running into the same issues that ffmpeg had with large file)
There is no end message or "bingo your're done.. ding" message. It should just stop writing the file, MPC will have played to end, and there will no longer be large HDD activity
Try on a short clip first, like 50 frames. You can mark in/out in vdub and trim to the selection for example. Always do small test runs before you embark on the big thing .
Also can you navigate to the end of the timeline in vdub without hanging (before starting the frameserver) ? DirectShowSource() isn't the most reliable method of opening video in avisynth
Turns out the frameserver problem resolved itself; all in all, using the frameserver appears to have been the best solution. No quality loss and iMovie opened the files just fine.
Using FFMpegSource2("video.mov", atrack=-1) instead of directshowsource("C:\video.MOV") has been a great discovery as well...sometimes when opening the raw MOV files in Vdub using directshowsource it would say there would be 90,000+ frames in a ~3 minute video, which would make exporting it a rather lengthy process. Using FFMpegSource2 appears to have fixed that problem, so that's a relief.
Thanks for all the help!