I have four video clips from my 5D Mark II camera that are 1080p MOV files and I simply want to combine the 4 and save it as one video -- but I'd like to do so without any quality loss. It would also be nice if I could add transitions in between the 4 clips. Here is the video data for one of the clips, copied from MediaInfo:
So far I've opened the 4 clips up in avidemux (selecting No for the 'H.264 detected/use another mode' window when I load them in), joined the 4 clips together with Append, selected "Copy" for Video and Audio and "mp4" for Format. I selected mp4 because I read that converting MOV to mp4 is the best way to save losslessly. As soon as I go to File - Save Video and save it I get an error message saying "Invalid audio stream detected - The audio stream may be invalid for this container. Continue anyway?" and then when I select Yes another error immediately pops up saying "Crash - Press OK to build crash info." When I click OK avidemux closes entirely.
So how can I fix this? Again, I just want to join these 4 HD clips and save them as one video without any loss in quality. As a bonus, I'd like to be able to add a simple transition in between the clips. Any help would be much appreciated!
The video editing software I have on this computer consists of: avidemux, VirtualDub, VirtualDubMod, avisynth, Camtasia Studio 6 and Canon's Zoombrowser EX software (which I believe has very limited video editing capabilities). I have a vague understanding of how to use those programs. I also have a Macbook with iMovie '09 on it but I've never used it and have no idea how it works.
+ Reply to Thread
Results 1 to 30 of 31
Last edited by maskingtape; 21st Aug 2011 at 20:28.
Last edited by maskingtape; 20th Aug 2011 at 10:35.
You can't use mp4, save them as mov ( because mp4 container doesn't support the type of audio that the 5D uses)
You cannot keep it lossless with transitions, you need to re-encode the entire video if you add transitions (lose quality on the entire video). There are no smart editors (only re-encode the transition parts, copy the others) that can apply transitions yet for this format
If you don't mind losing some quality, then any editor can do it e.g. premiere pro, sony vegas, final cut pro (mac), edius, avid media composer etc....
I ended up putting the clips together with transitions in iMovie -- it gives you lots of options on how to export the video and I can still get the 1920x1080 dimensions by selecting "Export using Quicktime..." but I'm not sure which settings, compression type (H.264, MPEG-4 Video, Apple Intermediate Codec etc), data rate and so on I should be using. I know that none of the options will be totally lossless but what export settings should I have selected so that the quality of the final video is as close to lossless as possible?
I'm also going to be uploading this to Youtube afterward if that makes a difference. I've been pleased with the result of uploading the raw, unedited 1080p videos from my 5D Mark II to Youtube so I'd like to achieve as similar a result as possible with this edited video.
After watching this YouTube tutorial on how to export high quality 1080p videos with iMovie, I used more or less the same settings and exported it...here's the technical information of the exported video from MediaInfo:
After about 3.5 hours of exporting it completed and I compared the movie with the original; unfortunately there's a pretty significant drop in quality even at what I assumed were optimal settings. Here's a crop of a screenshot from the original video (top) and the same frame from the edited video (bottom) so you can see what I mean:
The only adjustments I made were to slightly lower the saturation, slightly raise the contrast and slightly shift the white point. As you can see, specifically in the left side of the bottom frame, there's a lot more noise/pixelation than there is in the original frame above. What settings can I export it with that will avoid this quality loss?
use a better encoder e.g. x264 , and higher bitrates if you want less quality loss .
Your original footage is about 40Mbps, but you are using less than half that bitrate in your export - so quality loss is expected. Even if you used 80Mb/s (double the original filesize) there would be some quality loss. This is a lossy format, and re-encoding with a lossy format means quality loss . Finally, if your goal is youtube , vimeo etc... they will re-encode again, at a very low bitrate, so the quality will become even lower (each time it gets worse)
you can get x264 component for mac, and it will show up in quicktime
Thanks for the help, I'll try using x264 next.
Would this method be any more useful for less quality loss? The comments on the page seem pretty positive and his instructions seem thorough but it looks rather similar to the same export process I already used so I'm not sure how much it would help or not.
Your project settings and export settings have to match the footage, any deviation will lower the quality
Quicktime AVC/h.264 encoder produces substantially worse results as well. This is well known. There are many many tests and comparisons
In terms of export compression, if you don't care about filesize, and just want lossless output, use animation codec with the quality slider all the way to the right. This is a lossless RGB format (huge filesizes)
Alright so I'm once again exporting with Quicktime via iMovie and have "Export: Movie to Quicktime Movie" selected and in Options -> Video -> Settings I have x264Encoder selected. Still unsure about the rest of the settings though.
-Frame rate: (Current) FPS
- Every (#) Frames
- (Least - Best)
- Best quality (Multi-pass)
- Faster encode (Single-pass)
- Restrict to (#) kbits/sec
- Optimized for (Download) [Greyed out]
Then for "Export Size Settings" I just have "1920 x 1080 HD" selected with "Preserve aspect ratio using..." and "Deinterlace Source Video" both unchecked.
For "Sound Settings" I have...
Format: Linear PCM
Channels: Stereo (L R)
Rate: Recommended kHz
Render Settings: Best
Linear PCM settings sample size: 16 bits
Little Endian: Checked
Floating Point: Unchecked
...and finally I have "Prepare for Internet Streaming" unchecked.
These are all just (mostly) uneducated guesses on my part, though...which of these should be changed and which should stay the same in order to achieve the best quality?
(I need to upload the video before too long so I don't think I have time to go completely lossless with the animation codec but I'll keep it in mind as a last resort)
Almost there...using those settings in the previous post I was able to get a video that didn't seem to have any visible quality loss when comparing two screenshots of the same frame between the original and the edited version, but there are three problems.
First, for some reason the edited video is much darker and more saturated than the original, even though I didn't touch the video adjustments at all. It's like the contrast and saturation were increased by about +15 each.
Second, it's 8 pixels smaller. I didn't realize this, but the original video was 1920x1088, not 1920x1080 as I had thought. This is probably simple enough to fix though.
Third, two of my computers can barely play it back on any media player, Quicktime included. It's just a choppy laggy mess. I can play it on the Macbook with Quicktime but with any other media player (VLC) even the Macbook has trouble playing it. I'm not sure what this means for online viewing on sites like Youtube etc
Here's the MediaInfo data from the latest edit (encoded with x264): http://tinypaste.com/89e4ca
Thanks again for the help!
What are your computer specs? In order to play highly compressed videos, you need decent hardware . If you use lower compression or worse quality compression (e.g. apple avc), then you can get away with using slower hardware. You will need higher bitrates for similar quality. The settings used with x264 (like high profile, CABAC) are enable and use higher quality features and profiles. This takes more CPU cycles to decode. You get better quality at a lower filesize. You can lower the quality and settings if you want, but you will need a higher bitrate to compensate
The elementary stream from the 5d is 1920x1088 , but quicktime decoder crops 8px , libavcodec and other decoders decode and return the full image size. I don't know if it makes a big difference to you
Search for "quicktime gamma shift bug". There should be 100's of articles & posts on this. Basically Mac's got it all wrong and use the incorrect gamma. It doesn't correlate with industry standards. In quicktime X and FCP X there are settings for 2.2 gamma - that's the industry standard. There are workarounds on the PC if you have to use quicktime to encode, I'm not sure about the workflow you are using (I mainly use PC, and I've never used imovie). Basically , because QT software decodes YUV=>RGB with ~1.8 gamma. What you see will be different when you use a standardize interface like blu-ray, dvd, youtube , etc.... when you use a QT workflow.
e.g. if you upload your native MOV clip to youtube, or make a blu-ray, it won't correlate with what you "think" you are seeing in QT or the MAC. This is because MACs don't use industry standard conventions ITU Rec.601/709 for YUV<=> RGB conversion. As a result, the gamma will look shifted, blacks will be crushed.
The other color difference is quicktime decoder clamps the 5D data (superbright data is clamped to Y'235), whereas other decoders decode full range 0-255. These things together cause the difference you are seeing.
Quicktime decoder uses point resized chroma upsample (lower quality, blocky colors), and adds noise
Many 5D users (and other canon DLSR users) transcode their footage first before editing in FCP to improve upsampling quality (not sure about imovie workflow).
They used to have many examples and screenshots but they took them down. I posted some other comparisons of chroma upsample with QT decoder here (these are before compression, lossless, just comparing decoders), you can see how the color edges look "blocky" and there is noise added especially in low luminace areas with QT
I don't know the specifics of an imovie workflow, but on a PC there are more options and better control over decoding matrix, upsampling algorithms, encoding settings). I think imovie is geared towards ease of use, so you might not have control over some things. It might be easier for you to use quicktime for everything and just use a higher bitrate
Last edited by poisondeathray; 22nd Aug 2011 at 08:51.
Thanks for all the info; I have a desktop PC and a laptop PC both running Windows XP Pro SP3 and a borrowed Macbook. The Macbook is the only one of the three that can really handle the Mark II's videos, in most cases.
The desktop PC =
Intel Core 2 Quad Processor Q6600 @ 2.40GHz
1.58 GHz, 1.96GB of RAM
NVIDIA GeForce 8400 GS 512MB
The laptop PC =
Intel Core 2 Duo Processor P8400 @ 2.26GHz
1.58GHz, 3.48GB of RAM
NVIDIA Quadro NVS 160M
The Macbook =
2.13 GHz Intel Core 2 Duo
2 GB 800 MHz DDR2 SDRAM
NVIDIA GeForce 9400M 256MB
I exported yet another version of the video overnight, this time with the full 1920x1088 dimensions and with saturation and contrast both toned down some in order to avoid the overly dark/saturated results I had gotten from my first x264 export. Unfortunately the results were again not optimal; when comparing screenshots of the same frame from the original, the first x264 export and the second x264 export the two exports are still not coming close to matching the original.
As I said, the first x264 export has good quality but is much darker and more saturated than the original which is a problem for this video since there's a lot of red light which gets even more washed out with the increased saturation.
The second x264 export has less over-saturation but is still too dark. The bigger problem, however, is that the quality has gone down dramatically and I'm not sure why. The quality between the original and the first x264 export is roughly the same, but there's a large drop in quality between those two and the second x264 export for some reason -- the picture is softer/blurrier and there's more pixelation. I don't know why this is since I used the same settings as with the first x264 export, the only differences being that I exported it with the full dimensions (1920x1088) and slightly reduced the saturation and contrast. Here's the MediaInfo data from the second x264 export:
The color difference makes sense now due to the Quicktime issues, although I still can't figure out why the second x264 export has such lower quality.
Regarding the 5DtoRGB program:
I downloaded and installed this on the Mac and upon opening it got this error:
Missing ProRes Codecs
No ProRes codecs could be found on the system. Only DPX output will be available.
Sorry for how lengthy this topic is getting as well as my relative ignorance on the subject -- I really do appreciate all the help!
EDIT: Sigh...after trying to use 5DtoRGB to transcode one of the clips using the default settings it immediately crashed. Tried rebooting and using a different clip, crashed again. ...this may be more trouble than it's worth.
Last edited by maskingtape; 22nd Aug 2011 at 10:34.
Those things I mentioned are just scratching the surface... A lot of it might be over your head and you might be looking for simple answers, I can't provide them. Not with a Mac workflow
The error message means you don't have FCP installed (prores comes with FCP). Prores is a high quality intermediate that most Mac users use for editing in FCP
I'm not sure about the exact steps you would use in imovie, I don't use it.
*The real life issues you will encounter when you upload your video to youtube or any other standard format - it will look different (you're making adjustments on a mac in imovie, so you will get a difference when it is "viewed" on youtube, blu-ray, dvd).
What you *think* you see , is only an RGB representation of the original data which is in YUV. But the problem is you're using Imovie (which uses Quicktime). So the original video is already decoded differently in terms of levels and gamma than what other programs and interfaces use. The rest of the world (including youtube) uses different methods of converting to RGB for display.
As an example, if you open your original MOV (straight from the camera) in quicktime player vs VLC , they look different even though the underlying file is the same. The reason is the method of decoding is different. They use different methods of converting that YUV to RGB for display.
You're making comparisons "to the original". But how you make those comparisons makes a difference. It's all relative because you are looking at RGB screenshot of the orignal YUV data, not the original YUV data. So if you took a screenshot in imovie vs. VLC, vs. Mplayer - they might look different because of different decoders and matrices used. It depends on how the RGB conversion was done. Which one is the "correct" original? The answer is none of them. None of them is looking at YUV directly. It's all relative.
I explained the difference why earlier, and those are the reasons for the discrpancies in gamma and levels between mac (quicktime) and on PC and the rest of the world, including youtube and flash sites. The other complication is what flash uses for RGB conversion. When end users use hardware accerleration, a Rec601 matrix will be used to decode the YUV data to RGB for display, but otherwise Rec709 will be used (no HW acceleration). You have no control over the configuration of end users' systems. Things like blu-ray and DVD are more standardized. DVD will use Rec.601 and HD blu-ray Rec.709. But you don't have control over end user TV/monitor calibration
The 5D actually uses BT.601 (most HD footage uses BT.709) for it's conversion matrix when the information is passed from the sensor to the YUV recording format. It's written in the metadata. So to convert back to RGB, most people use Rec.601. So if you work in RGB, the colors will be preserved (e.g. animation codec, or TIFF images). But the final format you export is in YUV (h264). It's where these RGB<=>YUV conversions cause color issues. You need control over all the steps, but I don't think Imovie will allow you the control. Imovie will probably use quicktime matrix if you export a YUV format, so the colors will shift again
Color management , colorspaces , and workflow is a huge topic. What makes a PC workflow a little bit "easier" is that color is more standardized on PC programs to the rest of the world . They use the same matrices, as say, youtube, DVD, blu-ray. So you have a better chance and more control of getting things looking uniform across different distribution formats.
The color difference makes sense now due to the Quicktime issues, although I still can't figure out why the second x264 export has such lower quality.
How are you determining they are different? Remember, HOW you view the image makes a difference (the method of decoding YUV=>RGB)
If you are using something like VLC, only 1 instance can be open at a time (it will be default use overlay renderer, but only 1 graphics instance can use it). Having 2 instances will cause the 2nd to use a different renderer, thus will look different.
Last edited by poisondeathray; 22nd Aug 2011 at 11:06.
Yeah I think I've given up on using the Mac.
So eliminating Mac from the picture, what should I use with my PC to achieve the desired result, i.e. the *least* amount of quality loss when joining the clips and adding transitions and the most control over the color in the resulting exported video? I have basic video editing programs on here: VirtualDub, VirtualDubMod, Avidemux, Avisynth, Camtasia Studio. Would any of these, or any freeware, do an adequate job (or at least a better job than iMovie)?
I forgot to mention that I also have Adobe Photoshop CS5 Extended on this computer which does video editing, although I've never used it for such. What would my best option be at this point?
**Btw, not entirely sure if it matters now, but I downloaded 5DtoRGB for my desktop PC and there are no errors or crashes but if I should use it I'm still not sure which settings should be used...here are the options I'm unsure about:
Sorry, didn't see the last bit of your post.
Last edited by maskingtape; 22nd Aug 2011 at 11:17.
What kind of transitions ? Be specific.
What is your end destination format ? (The workflow is different for distribution formats). And how is it intended to be "viewed" ?
You have complete control over matrices and encoding with avisynth + x264, but it's not as "user friendly" as imovie interface (that's what Imoive was designed for). There is no nice "GUI" or buttons to push. There are GUI's for x264, but you still need to specify some things in avisynth scripts if you want the control
5DtoRGB isn't necessary on PC if you use avisynth workflow (you have even more control over the upsampling and matrices than 5dtoRGB)
Basically I want there to be four video clips that blend into one another -- iMovie's half-second "cross dissolve" transition did this nicely, so that's the kind of transition I'm looking for between clips. Then at the end I'd like it to fade to white (with the audio fading out as well) and transition to a JPEG image for the final few seconds. That's the basic effect I'm trying to achieve. I could do this with iMovie but obviously there were many problems with exporting the video after making those edits.
How can I do this with avisynth/x264 etc?
I'm trying to think of an easy way for you, but it's difficult to explain even the basics of avisynth . It might take you a few hours to days to even get started....
I will explain how you could do this in avisynth, but it might be over your head unless you got the scripting basics already. Editing is not user friendly in avisynth.
I would use FFMpegSource2 as the source filter. It decodes 5D/7D footage as full range Y' 0-255. Most colorists/editors prefer this because it allows more control as a starting point (you can have more control than if the routed through quicktime- so not only is color rendered better, the data is more spread out so it's easier to manipulate than if it was "squished" to Y' 16-235)
If you want a simple, no color/levels correction workflow, then I would stay in YUV colorspace and adjust levels with smoothlevels() using the pc2tv preset. This would scale a YUV 0-255 data to YUV 16-235, while dithering the data. You have more control in other programs and color correction suites for grading
If your 8px (1088) contains no useful data, most people would crop that out using crop(). 1088 is non standard dimension, youtube will display 1080 px anyway. Blu-ray doesn't support 1920x1088 either.
For the dissolves, you can use dissolve() , and the fade to white you could use animate() and levels()
When I use 7D/5D footage , I use avisynth to convert to an RGB intermediate (because of full preservation of levels and chroma upsampling) because I use other programs for color adjustments, and editing. I export RGB out and then use avisynth to control the conversion back to YUV. I usually don't use avisynth for the editing (only the colorspace and resizing manipulations), and to frameserve to x264
Not sure if this will work, but I'm thinking of an "easier" workflow, where you might be able to convert to RGB intermedate in ffmpeg (so you avoid the YUV=>RGB conversion quicktime issues with gamma and upsampling) , then use that intermediate as import into imovie, do your edits/color corrections in RGB, then export another RGB intermediate (probably animation codec), then use handbrake to encode using x264 (or if on a pc, there are many GUI's for x264)
(all the problems with gamma, levels are because of RGB<=>YUV conversions are not controlled properly)
there are limited import options in imovie, but animation codec should work
The command line prompt for a PC would be
ffmpeg -i input.mov -vcodec qtrle -acodec copy output.mov
You can make this into a batch file, to process for example all the files in a folder. The command line for OSX is different when using ffmpeg. You might be able to do this with ffmpegx (as a gui for ffmpeg)
Instead of using FFMPEG to convert to RGB, could I do it using 5DtoRGB on my PC? (I'm not familiar with FFMPEG or command lines)
If I'm understanding you correctly, I'd move the converted RGB files to the Mac, import them into iMovie, make the edits, export using the animation codec (with the slider all the way to the right) and then encode to x264 with another program (i.e. HandBrake)...right?
I don't know for sure, because it depends on how imovie "sees" it. By converting to RGB, you reduce the number of variables where it can "go wrong" because you are controlling the YUV=>RGB conversion, not letting Imovie do it.
This is why you should do some mini tests firsts so you waste less time. If it's not quite right, adjust it
To start, I would try animation, framerate should be 29.97 not 23.976 (I'm assuming that's what you shot with the 5D, 1080p29.97), ITU Bt. 601, 1.8 will give you the "quicktime gamma" look, where image is flatter and more milky. The 2.2 gamma will give you an image simlar to what you see in VLC with more contrast. These are just "starting points", because presumably you are going to make adjustments in imovie.
"Best" what? There is no "best". Technically "Best" quality is "lossless" or CRF 0, but filesize is huge.
I'm not that familiar with handbrake, and the mac version looks different than the pc version
There are many settings to play with , and you would use different settings for different sceanrios. You would use different settings for say, animation vs. a film source. It's too much to describe in this post, but here is a short description of the settings in the link below. x264 uses "presets" and "tunings" to simplify settings for users now. I'm not sure if that is reflected in the mac version of handbrake
If you don't like handbrake, there are many gui's for x264 on windows, e.g. megui, ripbot264, xvid4psp, staxrip, dozens more...
*To simplify things, the largest factor determining end "quality" is bitrate . If you are using a 1pass CRF mode ( it says "constant rate factor") in your screenshot, the lower the CRF, the lower the average quantizer, the better the quaity, and the larger the filesize
Backtracking here for a second:
I used 5DtoRGB on the same 8 second raw clip from my Mark II and made one with a Gamma Flagging of 1.8, one with Gamma Flagging of 2.2 and one with Gamma Flagging of "None" -- I transferred those three files plus the original clip over to the Mac and took screenshots of the same frame in all 4 with VLC, then examined the 4 screenshots in Photoshop and found that they're all virtually identical; no difference in color, contrast, saturation etc whatsoever.
I then took screenshots of the same frame in each of the 4 videos with Quicktime on the Mac and compared those and all 4 were quite visibly different (other than "None" and "Gamma 1.8" which were the same). So what does this mean in terms of people viewing it online once it's been uploaded to a site like Youtube? Will Youtube just show the same color/contrast/saturation no matter what, like VLC does? Or will it recognize the difference between, say, a gamma of 1.8 and 2.2 and display each differently like Quicktime does?
I'm just thinking, if I adjust the color/contrast/saturation etc in iMovie to get it how I want it to look and then export it with the Animate codec, then transcode it to x264 and upload that to YouTube, it would suck if I viewed it on Youtube and the colors/contrast/saturation were all wrong again. Again, pardon my ignorance, I've had this camera for 2.5 years now but I've done pretty much nothing with video editing so it's almost all new to me still.
VLC will be the closest predictor of how Youtube handles it, but it depends still on end user setup, - if they have HW acceleration for flash on or off, and of course monitor calibration - I mentioned this above (if you sift through one of the earlier posts)
Youtube doesn't not accept any flags, gamma flags, range flags or anything. It disregards flags, and once converted, there are no flags anyway. It only converts your video in 1 way. That's it. BUT - that video gets displayed differently according to the things mentioned above.
If you get it looking how you want it in imovie, then export animation codec, and don't specify a matrix in a GUI when converting using x264, most of the time this will use Rec601 for the RGB=>YUV conversion (which is what you usually want for 5D/7D sources anyway) . The colors will be slightly off if the end user has HW off (Rec709 will be used for the decoding matrix), but gross changes like huge gamma shifts and levels shouldn't the issue here.
If you use your own flash implementation (your own website), you can host higher quality videos (unlike youtube which re-encodes iwth low bitrate), and you can use matrix flags as well. But flags will only be accepted if the end user has HW accerlation turn OFF. When HW is on Rec601 is always used.
The easiest way is just to test your mini-workflow and upload it to youtube (keeping in mind what you see might be different than what other people see, depending on HW on/off, and monitor calibration)
I transcoded the four clips with 5DtoRGB using Quicktime RLE/Animation (RGB), 30 fps (the frame rate the vids were shot at), ITU-R BT.601 and Gamma Flagging 1.8 and after many hours I loaded those four transcoded clips into iMovie, made all the edits, then realized the last few seconds of each clip had no audio. I thought it was the transitions in iMovie doing this, but I checked the transcoded clips from 5DtoRGB without iMovie and each one is missing the audio in the last few seconds when played individually in any other media player as well. What would be causing this, and how can I fix it? The audio for the end of those clips is important in order to make the smooth transitions into the next clip.
This is turning out to be rather more complicated than I had first imagined :/
Not sure, I don't use that workflow. If the 5DtoRGB export already had audio problems (check them) , then obviously it's botched the audio in that step. If that audio was ok, then it was probably imovie's fault . Check each step
How is the video quality? (otherwise you might have to change some settings, you may as well do it now since you are re-doing some stuff)
I would check the mini test again more thoroughly (instead of wasting a few hours) . Did you actually do the final step? or did you only look at the Animation export from imovie. Trust me, you should go 100% end to end through a test workflow. It will prevent wasted hours later on.
If we assume the error was caused by the 5DtoRGB step, but the transcoded video is ok (correct number of frames), You can probably swap out the audio (stream copy the original audio into the trancoded 5DtoRGB clips, stream copying the already trancoded video, and replacing the defective audio). You could do this with ffmpeg, quicktime pro, maybe mpegstreamclip. You would do this because it would save time (transcoding video is slow, copying audio stream is fast)
So it depends what the exact error is , and at what stage the problems occur.