将mp4视频转换为xbox 360可以播放的格式


4

这是我的Xbox 360拒绝播放的视频文件:

$ MP4Box -info video.mp4
* Movie Info *
        Timescale 90000 - Duration 02:18:33.365
        Fragmented File no - 2 track(s)
        File Brand mp42 - version 0
        Created: GMT Sat Jul 21 07:08:55 2012

File has root IOD (9 bytes)
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: ISO Reserved Profile (0x7f)
Audio PL: High Quality Audio Profile @ Level 2 (0x0f)
No streams included in root OD

iTunes Info:
        Encoder Software: HandBrake 0.9.6 2012022800

Track # 1 Info - TrackID 1 - TimeScale 90000 - Duration 02:18:33.235
Media Info: Language "Undetermined" - Type "vide:avc1" - 199318 samples
Visual Track layout: x=0 y=0 width=1280 height=688
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1280 x 688
        AVC Info: 1 SPS - 1 PPS - Profile High @ Level 4.1
        NAL Unit length bits: 32
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 02:18:33.365
Media Info: Language "English" - Type "soun:mp4a" - 389689 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio MPEG-4 Audio AAC LC - 6 Channel(s) - SampleRate 48000
Synchronized on stream 1

$ avconv -i video.mp4
avconv version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav     developers
  built on Nov  6 2012 16:51:33 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2012-07-21 07:08:55
    encoder         : HandBrake 0.9.6 2012022800
  Duration: 02:18:33.36, start: 0.000000, bitrate: 2299 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 1280x688, 1973 kb/s, 23.98 fps, 90k tbr, 90k tbn, 180k tbc
    Metadata:
      creation_time   : 2012-07-21 07:08:55
    Stream #0.1(eng): Audio: aac, 48000 Hz, 5.1, s16, 319 kb/s
    Metadata:
      creation_time   : 2012-07-21 07:08:55
At least one output file must be specified

我应该使用什么工具(例如ffmpeg或mencoder)以及什么样的魔术命令行咒语将此文件转码为Xbox 360可以播放的格式?我希望转码过程能够保持尽可能好的视频质量。

在slhck的帮助下,我设法创建了一个新的mp4文件,并将音频更改为两个通道。但是Xbox 360仍出于某种原因拒绝播放它。这是MP4Box和ffmpeg关于新文件的内容:

$ MP4Box -info final.mp4
* Movie Info *
        Timescale 1000 - Duration 02:18:33.343
        Fragmented File no - 2 track(s)
        File Brand isom - version 512
        Created: GMT Sat Jul 21 07:08:55 2012

File has root IOD (9 bytes)
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: Not part of MPEG-4 Visual profiles (0xfe)
Audio PL: Not part of MPEG-4 audio profiles (0xfe)
No streams included in root OD

iTunes Info:
        Encoder Software: Lavf53.21.0

Track # 1 Info - TrackID 1 - TimeScale 90000 - Duration 02:18:33.193
Media Info: Language "Undetermined" - Type "vide:avc1" - 199318 samples
Visual Track layout: x=0 y=0 width=1280 height=688
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1280 x 688
        AVC Info: 1 SPS - 1 PPS - Profile High @ Level 4.1
        NAL Unit length bits: 32
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 02:18:33.343
Media Info: Language "Undetermined" - Type "soun:mp4a" - 389688 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Synchronized on stream 1
Alternate Group ID 1

$ avconv -i final.mp4   
avconv version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
  built on Nov  6 2012 16:51:33 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'final.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2012-07-21 07:08:55
    encoder         : Lavf53.21.0
  Duration: 02:18:33.34, start: 0.000000, bitrate: 2161 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 1280x688, 1973 kb/s, 23.98 fps, 90k     tbr, 90k tbn, 180k tbc
    Metadata:
      creation_time   : 2012-07-21 07:08:55
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 180 kb/s
    Metadata:
      creation_time   : 2012-07-21 07:08:55
At least one output file must be specified

Answers:


2

根据Xbox工程视频播放常见问题解答,h.264要求是:

  • 视频配置文件:基准,主要和高级(最高4.1级)配置文件。
  • 视频比特率:10 Mbps,分辨率为30fps时的1920 x 1080。有关更多信息,请参见问题11。
  • 音频配置文件:2通道AAC低复杂度(LC)
  • 音频最大比特率:无限制。

现在,作为常规命令行,这应该可以工作:

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -crf 23 -c:a libfaac -q:a 100 output.mp4

更改-crf-q:a参数以改变质量。较低的CRF意味着更好。默认值为23,但请选择18至28之间的某个值,看看您是否喜欢这种质量。FAAC的音频质量以百分比为单位,因此默认值为100%,越高表示越好。


在您的特定情况下,满足所有要求,但音频通道的数量除外。您有5.1音频,需要将其转换为2.0立体声。因此,我们使用以下-ac选项复制视频比特流并更改音频通道的数量:

ffmpeg -i input.mp4 -c:a libfaac -q:a 100 -ac 2 -c:v copy output.mp4

根据您使用的编码器来更改突出显示的部分-一些FFmpeg版本可能不捆绑FAAC,因此您也可以使用内置编码器:

ffmpeg -i input.mp4 -c:a aac -strict experimental -ac 2 -c:v copy output.mp4

如果您收到有关FFmpeg无法将6声道音频降混为2声道的错误,您要做的是提取原始音频,然后使用FAAD对其进行降采样。

ffmpeg -i input.mp4 -c:a copy audio-6.aac

然后,下采样为PCM立体声WAV文件:

faad -d -o audio-2.wav audio-6.aac

并将其重新混合到您拥有的视频中。这不会重新编码视频,因此将保留您的原始质量,但是我们将不得不再次对音频进行编码。如果您没有libfaac,请参阅上面的使用的内置替代方法aac

ffmpeg -i input.mp4 -i audio-2.wav -c:v copy -c:a libfaac -map 0:0 -map 1:0 output.mp4

如果视频仍然无法播放,您可以尝试重新编码整个视频。


谢谢。当我使用avconv而不是时,它几乎可以工作ffmpeg。但后来我得到错误:无法重新取样6个频道@ 48000赫兹到2个通道@ 48000赫兹
比约恩·林奎斯特

谢谢,但仍然没有骰子。:现在我对你最后的命令得到一个不同的错误[mp4 @ 0x12aea20] Tag [1][0][0][0]/0x00000001 incompatible with output codec id '65536'
比约恩·林奎斯特

认为我现在明白了。faad输出PCM立体声音频,而不是AAC。我们将不得不再次转换它。
slhck

好的。这样会创建一个看似有效的新视频文件,但Xbox 360仍然无法播放它。我已使用avconvMP4Box信息更新了我的问题。
比昂·林德奎斯特

嗯 我放弃了 如果我只有Xbox可以尝试,我一定会帮助您,但据我所知文件似乎有效。您还有在Xbox上实际播放的其他视频吗?我们可以看看有什么不同。您是否也尝试过重新编码(立体声音频)视频比特流,甚至还可以ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline -c:a copy output.mp4?这将使我们的视频流具有较低的轮廓。尽管Xbox支持最高支持,但这也可能是一个问题。或没有音频的文件(-an可选)。至少我们会知道这是视频还是音频部分。
slhck

0

我一直在尝试与原始海报相同。不管出于什么原因,我都没有运气得到slhck的答案。可能是因为我的工作用笔记本电脑装有ubuntu,已将其替换ffmpegavconv

总之,总而言之,我放弃了使用命令行解决方案,而是handbrake使用Universal预设来安装和转换文件。这将以mp4格式生成格式正确的文件,但会为其提供m4v扩展名。重命名文件以提供mp4扩展名。意思是相同的,但是xbox并不知道这一点,并且仅在扩展名为时才读取它们mp4

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.