如何将mkv电影转换为mp4以流式传输到XBox 360

罗伯·格温·琼斯

我最近购买了Synology Diskstation DS412 +,并且有很多.mkv电影,我希望将它们转换/转码为mp4文件,以便可以将它们直接流式传输到XBox360。我在笔记本电脑上使用了Handbrake,但是我宁愿直接在我的NAS上发生这种情况。

我在Linux上非常生锈,对转码还是陌生的,但是我目前拥有的脚本如下:

#!/bin/bash
for dir in *; do
  if test -d "$dir"; then
    #echo $dir
    for file in "$dir"/*.mkv; do
      noextension=${file%.*}.mp4
      ffmpeg -y -i "$file" -vcodec copy -acodec copy "$noextension"
    done
  fi
done

据我了解,它只是将音频和视频组件复制到mkv容器中,然后将其插入新的mp4容器中。这对我的几个文件有效,但是对于某些文件却不起作用。

以下是运行失败的输出示例:

ffmpeg version UNKNOWN, Copyright (c) 2000-2011 the FFmpeg developers
  built on Sep 16 2013 00:45:02 with gcc 4.2.1
  configuration: --prefix=/usr/syno --arch=i686 --target-os=linux --cross-prefix=/usr/local/i686-linux-gnu/bin/i686-linux-gnu- --enable-cross-compile --enable-optimizations --disable-yasm --disable-altivec --enable-pic --enable-shared --disable-static --disable-swscale-alpha --disable-ffserver --disable-ffplay --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-indev=alsa --disable-outdev=alsa --disable-encoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=ac3_float --disable-encoder=eac3 --disable-decoder=dca --disable-decoder=eac3 --disable-decoder=truehd --cc=/usr/local/i686-linux-gnu/bin/i686-linux-gnu-ccache-gcc
  libavutil    50. 40. 1 / 50. 40. 1
  libavcodec   52.120. 0 / 52.120. 0
  libavformat  52.108. 0 / 52.108. 0
  libavdevice  52.  4. 0 / 52.  4. 0
  libavfilter   1. 77. 0 /  1. 77. 0
  libswscale    0. 14. 0 /  0. 14. 0
[matroska,webm @ 0x80726c0] Estimating duration from bitrate, this may be inaccurate

Seems stream 1 codec frame rate differs from container frame rate: 47.95 (5994/125) -> 23.98 (24000/1001)

...然后是输入章节开始和结束时间的列表,然后...

 Stream #0.0(eng): Audio: aac, 48000 Hz, stereo, s16 (default)
 Stream #0.1(eng): Video: h264 (High), yuv420p, 1280x692 [PAR 1:1 DAR 320:173], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)

...然后是输出章节开始和结束时间的列表,然后...

Stream #0.0(eng): Video: ![0][0][0] / 0x0021, yuv420p, 1280x692 [PAR 1:1 DAR 320:173], q=2-31, 2997 tbn, 23.98 tbc (default)
Stream #0.1(eng): Audio: libfaac, 48000 Hz, stereo (default)
Stream mapping:
  Stream #0.1 -> #0.0
  Stream #0.0 -> #0.1
Press [q] to stop encoding
[mp4 @ 0x808a020] pts < dts in stream 0
av_interleaved_write_frame(): Invalid data found when processing input

XBox支持网站提供了有关支持的文件类型的详细信息,并且H.264标准中包含mp4:http//support.xbox.com/ar-SA/xbox-360/system/audio-video-playback

我有点茫然。我已经阅读了http://www.ffmpeg.org/ffmpeg.html,但是来自ffmpeg的错误消息似乎并没有太大帮助,并且在Synology Box上运行这些内容时,资源充其量是稀疏的。

我已经尝试了一些脚本置换,例如:

ffmpeg -i "$file" "$noextension"

ffmpeg -y -i "$file" -vcodec mpeg4 -acodec libfaac "$noextension"

但是这些都给我以下错误:

Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height

我假设我将需要特别指定输入和输出编解码器,以及诸如比特率或宽高比之类的东西,但这就是我无法理解的地方。

任何帮助将非常感激!

蓝剑

好的,现在实际上需要对视频进行更详细的说明,该细节在转码时会失败。但仍在查看错误,这是您可以做的尝试。我会警告您,输出可能有很多组合(比特率,帧率等),但您必须决定所有这些。

选项1

ffmpeg -y -i ip.mkv -vcodec libx264 -acodec libvo_aacenc op.mp4

这类似于,ffmpeg -i ip.mkv op.mp4但是我明确添加了编解码器。

选项2

ffmpeg -y -i ip.mkv -vcodec libx264 -acodec libvo_aacenc -b:a 92k op.mp4

增加了比特率,您可以根据需要进行更改。

选项3

ffmpeg -y -i ip.mkv -vcodec libx264 -acodec libvo_aacenc -b:a 92k -r 30 op.mp4

增加了30的fps。

您也可以尝试混合2 and 3选择。

希望这会有所帮助。

PS:正如@slhck所说;请先更新ffmpeg,然后再尝试这些。同样,所有这些都是re-encoding命令,因此,如果您真的要使用它们;使用比我已经说明的更好的音频编码器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何播放360 MP4西元?

来自分类Dev

如何在Linux上设置Apache以将WMV-HD流传输到Xbox 360?

来自分类Dev

如何将一个Xbox 360无线控制器连接到PC和Xbox 360?

来自分类Dev

将UIButton旋转360度

来自分类Dev

如何将本地文件(例如.MP4文件)流式传输到Chrome Cast?

来自分类Dev

如何将本地文件(例如.MP4文件)流式传输到Chrome Cast?

来自分类Dev

如何将经度从0-360转换为-180-180

来自分类Dev

如何将轨迹球鼠标转换为360°滚动条?

来自分类Dev

如何将笛卡尔坐标转换为 360 图像上热点的球面坐标

来自分类Dev

Xbox360模拟杆角SDL

来自分类Dev

用dd克隆XBox360

来自分类Dev

类似于xbox360的无线垫

来自分类Dev

将360°元数据插入Java中的mp4文件

来自分类Dev

将MKV转换为MP4

来自分类Dev

如何将AVI(xvid)转换为mkv或mp4(h264)

来自分类Dev

如何将AVI(xvid)转换为mkv或mp4(h264)

来自分类Dev

将图形对象旋转360度

来自分类Dev

将图形对象旋转360度

来自分类Dev

如何正确夹紧360度重叠?

来自分类Dev

如何使OpenGL相机旋转360度

来自分类Dev

如何使用ffmpeg更改360视频投影?

来自分类Dev

ios如何旋转控制360度

来自分类Dev

如何正确夹紧360度重叠?

来自分类Dev

Javascript Canvas如何从旋转的物体以360 *拍摄

来自分类Dev

如何使用Xbox 360无线游戏控制器?

来自分类Dev

我如何使用-webkit和jQuery将图像旋转-360度和+360度?

来自分类Dev

如何将xbox360控制器连接到桌面应用程序(C#,Windows 10)

来自分类Dev

如何将MKV视频转换为与Windows上的iOS设备兼容的无损MP4视频?

来自分类Dev

如何将MKV文件转换为具有两个音频流且仅需要ffmpeg的MP4的MP4?

Related 相关文章

热门标签

归档