Searching for a Realistic MPEG-4 Solution?
gmezero asks: "Over the last year I have been listening to the trumpet of MPEG-4 being sounded, and I am eager to take up the charge and implement it within my company for our corporate communications. In the past we have used MPEG-1 because to it's commonality. However, due primarily to size limitations (among many other issues that have evolved over the last year), I am getting pressure to move us to WMV for it's perceived 'compatibility' as all of our staff have Media Player on their systems. Unfortunately, nobody seems to realize the fact that WMVs may be Media Player version dependent as well and lock us into future upgrade issues. I can not demand for our GIS group to roll out a stand alone player (eg: DIVX), and I am getting down to a deadline of next week to finalize this platform selection. My pitch to sell MPEG-4 within my company boils down to one major issue, and that brings me to my question. How do I create a MPEG-4 file that will be player independent, short of the player pulling down a new codec for their existing installed media player (QT, WMP, Real)?"
I have the same problem. There aren't that many good solutions. I have found Xvid to be the best mpeg4 codec but finding a good container format has been very hard. The OGG media container seems to be really good. It handles subtitles and alls sorts of stuff. I can't find any good encoders that can output ogm though. I wish mencoder would do it instead of the awful AVI format.
I recommend purchasing QuickTime Pro and converting your files to H.264 (MPEG-4 part 10). It's a standard and provides wonderful quality for fast-moving transitions. Also, once you move to a QuickTime container, you'll be able to move to future formats without a problem in the future using QuickTime Pro (I have old videos from a camera that Mplayer can't even decode). QuickTime player is also free of charge and Linux users can use Mplayer.
However if you want to generate "plain plain" MPEG4, then you can have ffmpeg do it. You can get it from Sourceforge. Just make sure to specify an output file with ".mp4" extension.
Variants of MPEG4 are DIVX, XVID, MSMPEG4 and I think H.264. In some cases they are competely interchangeable for playback if you change the FOURCC tag at the beginning of an AVI file, for instance. You caan do this with transcode's "avifix -F" command. Many players react badly to "MP4" tagged AVI files for some reason, yet all of them apparently have no problem with "DX50" (which is DIVX) so I often change those MP4 AVI files to DX50.
While MPEG-4 is cool and all, don't forget that in many cases you have to pay royalties to use it. This is often above and beyond what you paid for the encoder and the player. The MPEG-4 codec is covered by patents and is NOT public domain.
WMV is not (currently) subject to any content royalties as long as you're using a licensed encoder and player. And it comes pre-installed with Media Player 9 or later, and is available for earlier players in a simple codec pack.
OGG is probably free of all royalties, but comes with its own installation and distribution complexities.
Time flies like an arrow. Fruit flies like a banana.
can play mp4 out of the box. Just remeber to tag your files as FOURCC mp4v ( -vtag mp4v under ffmpeg ). You can also transcode .avi files to .mov with the -vocdec copy -vtag mp4v -acodec copy -f mov under ffmpeg as well.
I have no clue wether or not this is standard behaviour, but my windows friends can play my quicktime encoded home videos (in mpeg 4 format, encapsulated with
On the other hand have I yet to find a wmv that plays well on my mac. And you can tell your bosses that the guy from the intarnets said although the Windows media player exists on other platforms, at least on the mac it is an annoying piece of crap.
As for a solution: I would take a good long look at the vlc streaming server, which not only offers raw data streaming but also extremely good transcoding options. take a look here what it has to offer. Even the single client can stream or transcode to any location, including files.
One question remains: did you even bother to encode an mp4 file with quicktime and try to play it in every player before posting to slashdot? You know "that guys from teh intarwebs forum told me (X) therefore you must believe me (Y) is true" is not a very convincing strategy if you want to make a pitch. Show them you did actually work on it
Code is Speech. No to Censorship.
Why not just use MPEG2? Doesn't practically everything play MPEG2? How long are this GIS videos you are creating anyway?
Why not fork?
I'm an outsider to the world of video codecs, but it seems like it doesn't have to be as hard as it is. Why is it that every third video file breaks ALL the video player clients I have installed? And why is it that whenever a player like Realplayer tries to download a new codec, it always fails? And why are codecs upgraded so often? So many questions, but it truly does boggle the mind that something can possibly be this hard to get right. What is stopping the industry from standardizing on one interoperable standard?
http://en.wikipedia.org/wiki/H.264.
I think people are right when they say H.264, HDDVD and Blue ray will both use it, use quicktime pro, and your good to go for all platforms, even video ipod and psp.
You want to use a new and better codec, but you aren't allowed to download a new and better codec, and neither are you allowed to choose the player they use? And you aren't allowed to install anything? You are basically screwed, more screwed and yet again screwed. Did I mention that you are screwed.
:)
I would avoid wmv, rm and mov like the plague. They are all properitary container formats. For a container format use you are probably stuck with avi. It is supported by most players. It's main problem is that it is becoming somewhat outdated, which can cause problem with modern codecs.
If you actually had some possibility to install something I would have recommended Videolan. A single stand-alone platform independant player that doesn't use external codecs but instead includes its own. A player like that should be easy to support and cause minimum codec problems. An avi or mkv container with an mpeg-4 codec (xvid, divx, etc.) and aac or mp3 for sound should work perfectly in Videolan and you wouldn't have to worry about having trouble playing it in the future.
Ok, time to quite dreaming. The video codec market is a patent minefield so it practically impossible for a commercial entity to use open source video tools in USA. Good look with wmv
In terms of codecs, something like XviD or DivX will probably be your best bet, along with either AAC or MP3 audio. The reason for this is that the MPEG-4 standard has many different parts, and not all players are required to support all parts. Most players will support, at the very least, Advanced Simple Profile video, which is what XviD and DivX are compliant to (MPEG-4 part 2, if you're interested). AAC is the "official" audio codec of the MPEG-4 standard, although most, if not all players will support MP3. I'm not sure how WMP (Windows Media Player) supports AAC (or any part of MPEG-4) by default. H.264 video (MPEG-4 part 10) is also part of the standard, but is less supported and more CPU intensive. OSS support leaves a bit to be desired, although mplayer currently supports it fairly well if you aren't afraid of compiling from CVS. As far as playing the resulting videos, I know mplayer can do this with no trouble, even as far back as the last stable version, although I'm not sure if WMP can handle it. Quicktime Player, obviously, supports H.264 playback with AAC, and Quicktime Pro will encode it with no trouble. I'm not sure about WMP support, but H.264 definitely has higher playback requirements in terms of CPU power.
I recommend using quicktime and using the H.264 codec if you need to really shrink your files.
.swf file on the short movies.
You can also do this. Buy sorenson squeeze 4.1 and run your videos through the queue where you will encode a quicktime AND an AVI, or Mp4 and even a
Then you can deliver all of the ways you want to, and in case of the swf files, you can buy macromedia's swf server stuff to make everything easier for mac and windows people. Can't speak for linux people there, but they can handle the other formats.
I thought there was a way to stream the same video file, but the user could pick the format container to play it, so the server would some how stream the correct file, or change it's format on the fly. I'm thinking the former.
If you want to try some of that, get VLC.
...::----::...
I am in no way affiliated with this sig.
I just had to wonder if some machine/os independent way couldn't be found to include the codec with the media? You could include the actual play back codec as a type of idealized byte code with the media. Before play back it could be translated into a native codec and cached to speed up future playback. Not likley to happen but it would be handy.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
i like www.3ivx.com as my mpeg4 compliant codec. once you have that installed, it'll play in WMP too
works on all platforms, fast, easy, gives good results.
Exercise caution when modding this message up: the author acts like a jerk when his karma is excellent.
Personally I'd go with xvid, its open sourced so they'll be no surprises and i've found it very easy to rollout in the past.
:p) to be able to optionally embed the "codec" into a bit of media so as to avoid all these annoying FourCC tag hacking issues. ;)
This subject actually touches on something i was daydreaming about the other day. It'd be nice (but of course HORRIBLY insecure
Let just wait for the MPEG-5 standard hey
You feel sleepy. Close your eyes. The opinions stated above are yours. You cannot imagine why you ever felt otherwise.
I'm surprised no one has mentioned the MPEG4 container.
Anybody who mentioned .mov (the QuickTime container) has already kinda-sorta mentioned the MPEG-4 container, as any program that reads one can easily be adapted to read the other.
The good thing is that you can use ogg in matroska (mkv), which you can't in avi. Which will save you a lot of bandwidth in the audio department.
Ummm... can't you use Ogg Vorbis or Ogg Speex audio in Ogg container? Or does Ogg container limit what video codecs you can use?
It'd be nice (but of course HORRIBLY insecure :p) to be able to optionally embed the "codec" into a bit of media so as to avoid all these annoying FourCC tag hacking issues.
With the performance of virtual machine technologies such as JVM and CLR catching up with that of native code on many platforms, this just might happen soon, and in a reasonably platform-independent and safe way.