-1

我在debian版本squeeze/sid上使用ffmpeg将flv转换为mp4。我需要在iphone、ipad上查看最终输出。我尝试了许多不同的组合,但未能正确转换文件。

有关示例 flv 文件的信息如下 - 通过命令 ffmpeg -i sample.flv

  FFmpeg version SVN-r0.5.9-4:0.5.9-0ubuntu0.10.04.1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5.9-0ubuntu0.10.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Jun 12 2012 16:27:59, gcc: 4.4.3
Input #0, flv, from 'sample.flv':
  Duration: 00:01:06.90, start: 2.079000, bitrate: N/A
    Stream #0.0: Video: flv, yuv420p, 352x200, 1k tbr, 1k tbn, 1k tbc
    Stream #0.1: Audio: nellymoser, 44100 Hz, mono, s16
At least one output file must be specified

当我尝试使用命令时 - ffmpeg -i sample.flv -sameq -ar 22050 sample.mp4

我收到以下输出错误。

ffmpeg -i sample.flv -sameq -ar 22050 sample.mp4
FFmpeg version SVN-r0.5.9-4:0.5.9-0ubuntu0.10.04.1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5.9-0ubuntu0.10.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Jun 12 2012 16:27:59, gcc: 4.4.3
Input #0, flv, from 'sample.flv':
  Duration: 00:01:06.90, start: 2.079000, bitrate: N/A
    Stream #0.0: Video: flv, yuv420p, 352x200, 1k tbr, 1k tbn, 1k tbc
    Stream #0.1: Audio: nellymoser, 44100 Hz, mono, s16
Output #0, mp4, to 'sample.mp4':
    Stream #0.0: Video: mpeg4, yuv420p, 352x200, q=2-31, 200 kb/s, 90k tbn, 1k tbc
    Stream #0.1: Audio: 0x0000, 22050 Hz, mono, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1

我不太熟悉 ffmpeg 和任何帮助,我们将不胜感激。

非常感谢提前。

4

1 回答 1

1

这是一个开始:

流 #0.1:音频:0x0000、22050 Hz、单声道、s16、64 kb/s

ffmpeg 通常会尝试为您指定的输出容器格式选择合适的编码器。在这种情况下,它出于某种原因选择了“音频编码器”0x0000(可能是错误/旧版本/没有可用的编解码器)

但是,在这种情况下,您可以告诉它使用哪个编码器。要选择一个,请查看 的输出ffmpeg -codecs-acodec codec您可以通过将指定的输出文件名放在前面来选择要编码的音频编解码器。

由于您正在为 Apple 设备编码,因此请尝试选择产生 AAC 音频的编码器,因为它往往是 Apple 最喜欢的音频编解码器。

于 2012-07-23T19:31:03.193 回答