====== archiving mini dv ====== This details how I'm pulling all video off of my mini dv tapes for easy access on my computers or PS3. - rip footage to [[#iMovie]] - re-encode .dv files with [[#MPEG Streamclip]] - [[#rename files]] according to my archive scheme - I then use MediaTomb to automatically read certain directories and make these videos available for my PS3 to stream ===== iMovie ===== - Open a new iMovie project, in either DV or DV Widescreen format (depending on how you recorded the video onto your tape) - Allow iMovie to import the entire tape into clips - Save the project and close iMovie ===== MPEG Streamclip ===== - create a preset with the following: * MPEG-4 container * H.264 video encoding * AAC audio encoding, stereo, 128 kbps * 60% Quality * Multipass * Limit Data Rate to 1000 Kbps * Deinterlace Video * 640 x 480 (4:3) frame size (or 854 x 480, 16:9 for widescreen) - if encoding many files - go to List -> Batch List - click the Add Files... button - select "All Files" from the filter at the bottom - go to where your iMovie project is and expand to the Media folder (or open any folder with the files you want to encode if you didn't use iMovie) - select all files and click "To Batch" - select Export to MPEG-4 as the task and click OK - click Presets... - select your preset and click Load - click To Batch - click start to begin encoding all files in the batch - if encoding one file - open a single file - go to File -> Export to MPEG-4... - click Presets... - select your preset and click Load - click Make MP4 ====== rename files ====== All of my dv tapes are numbered, such as 001, 013, 021, etc... I put the encoded files into a folder of the same name. I then wrote a php script that would take the iMovie named files such as Clip 01.dv (which after encoding is probably Clip 01.mp4), and name them as 001_01.mp4. **rename_home_movies.php** * * all files in will be renamed if they begin with "Clip " to * "dirname_" + file suffix */ if( !isset($argc) || $argc < 2 ) exit(basename(__FILE__) . " \n"); if( !is_dir($argv[1]) || !is_readable($argv[1]) ) exit("$argv[1] is not a readable directory\n"); $dirpath = $argv[1]; chdir($dirpath); $dh = opendir($dirpath); $dirname = str_replace(realpath("../") . "/", "", realpath(".")); $noFilesRenamed = true; while( $file = readdir($dh) ){ if( preg_match("/^Clip (.*)$/", $file, $matches) == 0 ) continue; $newName = "{$dirname}_{$matches[1]}"; $result = rename($file, $newName); // $result = true; // use this line to test if( !$result ){ echo "FAILED to rename $file\n"; }else{ echo "renamed $file to $newName\n"; $noFilesRenamed = false; } } closedir($dh); if( $noFilesRenamed ) echo "no files were found to rename\n"; ===== See Also ===== * [[ffmpeg]] * [[Quicktime]]