使用ffmpeg在debian 6上将flv转换为mp4

时间:2012-07-21 12:10:57

标签: ubuntu ffmpeg flv mp4

我在debian version squeeze / sid上使用ffmpeg将flv转换为mp4.I需要在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和任何帮助都不太熟悉,指针会非常感激。

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

这是一个开始:

  

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

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

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

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