我知道这个问题与这里,但我有一个更具体的目标。
我想将视频(1080p 质量,带多个声道)流式传输到不同的设备(iOS、Xbox 360、PS3、Mac、PC)。我考虑使用 tversity 设置媒体服务器来实现这一点。很难找到能够实时转码 1080p 内容的现成家用服务器硬件,所以我想以满足以下要求的格式存储视频:
- 1080p 画质,无明显压缩损失
- 对于大多数此类设备来说,不需要转码
- Xbox 360
- PS3
- Mac 和 PC(带 XBMC 或 VLC 播放器)
- iOS
- 包含不同语言的声音(我希望能够选择我想听到的语言,我拥有的大多数录音都支持英语和德语)
- 不是特别大(也就是说,我目前拥有的大多数 ts 录音都是 6 到 8 GB,这还可以,但如果可能的话,也不要太大)
设备的顺序可能很重要。视频主要使用 Xbox、PS3 和 PC 观看,Mac 和 iOS 很少见,但也是可能的。因此,能够在 Xbox 和 PS3 上观看而无需转码比在 iOS 上观看更重要 - 我猜 PC 和 Mac 根本不需要转码(如果错误,请更正)。
答案1
今天,你找不到比264 版本(又名 MPEG-4 Part 10,AVC)。它以最小的文件大小和比特率提供非常好的视频质量。
在网上,你会发现很多视频仍然使用 Xvid 编码,这是一种MPEG-4 第 2 部分编解码器。它相当不错,但要达到相同的感知质量,仍然需要更大的文件大小。
作为容器格式,您可以选择.mov
,它在 Apple 和 iOS 设备上得到很好的支持,以及.mkv
,它是当今最先进的容器(它也正在被采用,并有望很快取代讨厌的.avi
文件)。
MPEG 编解码器使用所谓的个人资料(和级别),限制了编码过程中可以使用的高级选项。这些选项可以提高视频质量,但缺点是在解码时使用更多资源。
例如,像 Android 手机这样的设备只能可靠地播放使用“基线”配置文件以 h.264 编码的视频,而您的家用 PC 和 Mac始终会播放“高”调视频。通常,iOS还会要求您使用“基线”配置文件对视频进行编码。这是这里的最小公分母,因此当您真的必须将 iOS 作为目标平台时,您将不得不做出一些牺牲。
这Xbox和PlayStation 3例如,可以“消化”比基线概况更多的内容。这里是 FFmpeg 的 Playstation 设置。应用程序如手刹有预设适用于所有类型的设备。您可以找到适用于 Playstation 和 Xbox 的预设这里。
编码并不总是那么容易。虽然配置文件和级别的概念有助于将视频定位到特定设备,但这并不一定意味着它们可以播放。
答案2
MPEG-4 AVC (akah264) 搭配 MPEG-4 容器 (mp4/m4v) 中的 AAC 音频应该适用于所有格式。如果 h.264 最终出现问题,MPEG-4 ASP (aka XviD/DivX) 也应该可以工作,不过在给定比特率下质量会略低一些。
也就是说,除非 Mac 和 PC 具有可以协助解码的高端 CPU 或 GPU,否则您将很难流式传输视频。
iOS 也是一样——据我所知,只有 iPad 2 和 iPhone 4S 能够解码 1080p 视频。
就多音轨(例如立体声与多声道或语言)或字幕而言,MP4 容器应该没问题,但 Matroska (MKV) 在这方面更强大。除非你喜欢让事情变得困难,否则请远离 AVI。
您必须谨慎设置编码器——不同的解码器和设备可能具有不同的功能。但是,像手刹消除过程中的大部分猜测。
最后,您可能想要评估不同的媒体服务器。您可能会发现PS3媒体服务器(尽管名字不同,但可以与各种 DLNA 客户端配合使用)或服务比 TVersity 更有用、更快、更兼容。