Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I know this question is related a bit to this here, but I have a more specific aim.

I want to stream videos (in 1080p quality with multiple sound channels) to different devices (iOS, Xbox 360, PS3, Mac's, PC's). I thought about setting up a media server with tversity to do that. It is hard to find home server hardware off the shelve capable of real-time transcoding 1080p content, so I want to store the videos in a format that fulfills these requirements:

  • 1080p quality without visible compression loss
  • does not need to be transcoded for most of these devices
    • Xbox 360
    • PS3
    • Mac and PC (with XBMC or VLC player)
    • iOS
  • contains sound for different languages (I want to be able to select the language I want hear, most recordings I have support english and german)
  • is not extremely huge (that said, most current ts recordings I have are 6 to 8 GB, which would be okay, but not a lot more if possible)

The order of the devices is perhaps important. Videos will mosty be watched using Xbox, PS3 and PC, Macs and iOS is rare, but also possible. So it's more important to be able to watch on Xbox and PS3 without transcoding than on iOS - I guess PC and Mac don't require transcoding at all (please correct if wrong).

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

Today, you won't find any "better" codec than h.264 (a.k.a. MPEG-4 Part 10, AVC). It offers very good video quality at minimal file sizes and bit rates.

Online, you'll find many videos still encoded using Xvid, which is a MPEG-4 Part 2 codec. It's pretty good, but still requires higher file sizes for the same perceived quality.

As a container format, you can choose .mov, which is well supported on Apple and iOS devices, as well as .mkv, which is today's most advanced container (it's also becoming adopted and hopefully soon replaces pesky .avi files).


MPEG codecs use so called profiles (and levels), which restrict advanced options that can be used in the encoding process. These options can improve video quality with the downside of using more resources when decoding.

For example, a device like an Android phone will only reliably play videos encoded in h.264 with the "baseline" profile, whereas your home PC and Mac will always play "high" profile videos. Typically, iOS will also require you to encode videos with the "baseline" profile. This is the least common denominator here, so you will have to sacrifice a bit when you really have to include iOS as a target platform.

The Xbox and Playstation 3, for example, can "digest" more than the baseline profile. Here are FFmpeg settings for the Playstation. Applications like Handbrake have presets for all kinds of devices already built in. You can find presets for the Playstation and the Xbox here.

Encoding is not always that easy. While the notion of profiles and levels helps to target your videos at a certain device, this doesn't necessarily have to mean that they play.

share|improve this answer
    
Both answers from slhck and afrazier are great, but this has a little more detail. Thank you. –  Sebastian P.R. Gingter Jan 12 '12 at 6:37
add comment

MPEG-4 AVC (a.k.a. h.264) with AAC audio in an MPEG-4 container (mp4/m4v) should work for everything. If h.264 ends up being problematic, MPEG-4 ASP (a.k.a. XviD/DivX) should work too, though at somewhat lower quality at a given bitrate.

That said, unless the Macs and PCs have either high end CPUs or GPUs that can assist in decoding, you'll have a hard time streaming the video.

Same for iOS -- AFAIK, only the iPad 2 and iPhone 4S are going to be able to decode 1080p video.

As far as multiple soundtracks (e.g. stereo vs. multi-channel or languages) or subtitles goes, MP4 containers should be OK, but Matroska (MKV) is more powerful on that front. Stay away from AVI unless you like making life difficult.

You'll have to be cautious with your encoder settings -- different decoders and devices can have different capabilities. However, tools like HandBrake take most of the guesswork out of the process.

Finally, you might want to evaluate different media servers. You may find PS3 Media Server (which works with all manner of DLNA clients, despite its name) or Serviio to be more useful, faster, or compatible than Tversity.

share|improve this answer
    
+1, what I'd have said. I think there are some more iPhone and iPad presets for Handbrake, but I haven't looked into whether there is any restriction in terms of h.264 features for the iPhone 4S. –  slhck Jan 11 '12 at 20:56
    
I think all the iPhone/iPad presets will also downsample the video to 720p or SD too. –  afrazier Jan 11 '12 at 21:28
    
I'm currently using PS3 Media Server and this application always crashes when I want to watch HD material, and it crashes in a way that I have to RDP onto my server to kill and restart the process. So PS 3 Media Server is definitely something I want to get rid off, but I will have a look at Serviio. –  Sebastian P.R. Gingter Jan 12 '12 at 6:35
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.