FFMpeg QuickTime H.264 export only works in VLC...?

I exported my animation plus sound under Ubuntu using the FFMpeg preset for QuickTime and H.264 - but when I play it back on the iMac I only get a white image, the sound is there. The same file will open with the VLC and play back video and sound.

What could be the problem? Is this preset supposed to work at all (using the latest Ubuntu and blender releases…)? (Exporting with the same preset on the Mac does not work for me - blender either crashes or says that some codec was not found.)

The thing is that up to now I used to upload my videos to blip.tv as .mp4 (H.264) compressed and I’d like to make sure that it plays back at least in QuickTime and the VLC before uploading it (they still have to convert it to Flash…). (I can’t test it under Linux since it looks like I still have to install codecs and the PC is currently offline…)

Or what other video/audio export option should be working under Ubuntu and can be recommended for uploading to a video site/is compatible across all or most platforms…? Thanks!

I was able to render to QT with H.254 without error and play it back on QuickTime (note I am on Windows). What version of QuickTime are you using. QT7 looks to have the H.264 codec integrated. My guess is older versions would have needed to download the codec.

I have QuickTime 7.4.5 under OS X 10.3.9. The strange thing is that when I look at the info for the movie it says that this is an H.264 encoded video and H.264 always worked for me so far… I had to use MP3 for audio encoding under Ubuntu instead of AAC that Apple uses for MPEG-4/H.264 (H.264/AAC export almost crashes blender under Ubuntu for me). Could maybe MP3 be a problem for the H.264 playback under QT on the Mac…?

I’ve also had issues in the past with .mov directly from Blender. I learned to use ffmpeg from the commandline. Here’s an example:

## 2-pass h.264 tested to work in QT on Windows
ffmpeg -r 30 -b 6000k -i %04d.png -pass 1 -vcodec h264 ../edit.mov
ffmpeg -r 30 -b 6000k -i %04d.png -pass 2 -vcodec h264 ../edit.mov

There’s other options and codecs for adding an audio track.

I found the solution: when you choose the H264 option from “Preset” AVI and a couple of other options are offered. If you then change to Quicktime (under “Format”) those other AVI options remain in the menu - the don’t appear if you select H264 from the “Format” menu directly… Under those other AVI options there is one (flags:loop) that causes the problem, disabling solves it.

You should probably also be aware that the h264 encoder used by ffmpeg (x264) supports a lot of features that the QT h264 decoder does not. Be careful when setting the encode options if you need to make sure it is QT safe.

Look at the table at the bottom of this page labeled “Software encoder feature comparison” :

Thanks, yes this is a bit tricky to get right - I think the way the FFMpeg options currently work in blender can be a real trap for the user (the other set of option that appears when you first choose H264 from “Preset” but does not go away when you go to “Format” Quicktime and “Codec” H264…).

While my Quicktime movie now works under QT it seems that when you watch it online the browser first loads the whole movie and shows you the QT logo until loading is done - instead of letting you watch the video while it still loads (which would be much better in my case since the file is over 100 MB). I guess this is due - as you point out - to some of the other options I did not turn off from the AVI H264 options when exporting it from blender.

But at least I finally know how-to export a working H.264 encoded QT video with sound under Ubuntu (on the Mac for me the Quicktime H264 export still crashes blender, but at least the Quicktime MPEG4 (divx) one works - again the “flags:loop” option has to be turned off for QT compatibility!).

You can use MP4Box to turn the file into an interleaved one suitable for streaming. MP4Box is part of the “gpac” package.

Having FFMPEG integrated in Blender is nice, but external tools such as MEncoder are still better if you want to optimize the output for quality and size because you can tweak all the H.264 encoder settings and run a two-pass encode.

By the way, the H.264 decoder of Adobe Flash is not as limited as Quicktime’s, so if you target Flash, you can cut down file size and improve quality even more. Flash 9.0 accepts H.264/AAC streams in standard MP4 or MOV containers.

Thanks, MP4Box seems very interesting, but unfortunately it looks like this is a Windows only application (I would need something that works under Ubuntu or OS X). Flash 9 is interesting too, I just don’t know how-to encode to H.264/Flash with FFMpeg (from within blender) or with any other open-source solution that works under OS X or Ubuntu (and combines audio and video at the same time).

I now uploaded my own Flash Video conversion to blip.tv (since the auto generated one was not suited for my type of animation), but even though the file is only a 320x240 one (but @ 2048 kbits for video, 49 MB file size) it takes a bit too long to load - you basically have to wait until it is fully loaded…

If anyone knows how-to optimise Flash Video performance/encoding from within blender (I have to combine video and audio with the export - the standalone ffmpegX for OS X won’t let me combine video and audio for the formats that I need) - I’d be interested in hearing about your blender FFMpeg FLV export settings. There is a whole library of advanced encoding features inside blender if you choose FFMpeg and then click the “Menu” button in the Video tab…! If I only knew more about it - there sure must be a way to get a more optimal result for Flash export…

I’ve had no problems rendering to QT H.264 and MP3 codecs on my Windows and OSX (10.5.3, QT 7) systems. I use MP3 since AAC is not supported on my window machine and I animate and render the same blend on both platforms. Playback is fine in QT on both platforms.



MP4Box is multi-platform. I already told you it’s in the “gpac” package in Ubuntu. Just install it with Synaptic.

Flash 9 is interesting too, I just don’t know how-to encode to H.264/Flash with FFMpeg (from within blender) or with any other open-source solution that works under OS X or Ubuntu (and combines audio and video at the same time).

Flash 9 takes standard .mp4 files and .mov files with H.264 and AAC content, just like Quicktime does. The difference however is that Flash, unlike Quicktime, fully supports the H.264 “Main” and “High” profiles, i.e. the same features that FFMPEG offers on the encoding side. If you use these features your videos will look better and be smaller in size but they won’t be compatible with Quicktime’s decoder. That’s why you see only a white frame when playing these files in Quicktime.

Apple uses the term “H.264” as a marketing tool but support for that format in Quicktime is actually quite poor. The HD demos and movie trailers on Apple’s website do not really show what H.264 is capable of in terms of compression efficiency.

I see… I’m just switching to Linux so acronyms like “gpac” or concepts like the Synaptic Packet Manger are still something I’m getting used to after 15+ years on the Mac where you think in apps with sexy names and glossy icons… (But if that’s the prize for freedom I’m still o.k. with paying it.)

Hmm… I’m the last one who wants to defend Apple after the disaster that Leopard was for me, still I think it’s good to have your movies QT compatible as well - to me Adobe always seemed to be just another company trying to build walled garden software eco systems… But yes, H.264 Flash sounds like a promising way to get high-quality online video delivered to most end users…

One thing I’m missing from FFMpeg (just in blender?) is Ogg Theora export. (Or is that hidden somewhere…?) Why all the effort of making open-source video encoding possible and then not include a working open-source video codec with a user friendly interface? (The best existing solutions right now seem to be linked here.) For the time being H.264 still seems to be the best codec and the best “cross platform” solution… I’ll see what I can do with “gpac”. Thanks.

You can add full support for H.264 (and several other formats/containers) to Quicktime by installing the Perian plug-in. For Ogg Vorbis/Theora support install XiphQT.

I share your concerns about Adobe, but Flash is available for Linux too. Quicktime is not. As long as you stick with MPEG formats (H.264/AVC, ASP, AAC, MP3, MP4) you are in line with ISO-approved open standards, i.e. neither Adobe nor Apple can lock you in. I don’t like Flash as a web design tool in general, but I think it’s OK as an embedded cross-platform video player.

One thing I’m missing from FFMpeg (just in blender?) is Ogg Theora export. (Or is that hidden somewhere…?) Why all the effort of making open-source video encoding possible and then not include a working open-source video codec with a user friendly interface?

There is indeed no Theora encoder in FFmpeg at this time. It may be added later for the sake of completeness, but I guess there is low demand for it.

Theora is a solution looking for a problem. If you care about compression efficiency, x264 is much better. If you care about encoding/decoding speed and compatibility with low-cost DVD players, Xvid is much better. If you are concerned about software patents, Theora doesn’t really fix your problem. I see no point in using Theora.

If you look at the Big Buck Bunny or Elephants Dream download pages you’ll see the AVI format listed first because it is considered the most popular one and easy to handle. This is interesting because MPEG-4 ASP and Dolby AC-3 in AVI containers were never endorsed by Microsoft or Apple. Neither Quicktime nor Windows Media Player support this combination out of the box. It is a “standard” that emerged from piracy and file sharing.

If the file sharing scene is an indicator for future trends, the next “big” container format to replace AVI will not be MP4/MOV, but Matroska.