ffmpeg:找不到输出流#0:1的编码器(编解码器amr_nb)

时间:2017-03-22 10:26:40

标签: ffmpeg

我正在使用此命令转换flv to 3gp

ffmpeg -y -i in.flv -ar 8000 -b:a 12.20k -ac 1 -s 176x144 out.3gp

它正在给出这个错误

Encoder (codec amr_nb) not found for output stream #0:1

我在amr_nb上搜索过yum个软件包,但无法找到它。

我在CentOS 7上

ffmpeg -version
ffmpeg version 2.6.8 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --enable-libfaac --enable-nonfree --enable-libfdk-aac --enable-nonfree --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil      54. 20.100 / 54. 20.100
libavcodec     56. 26.100 / 56. 26.100
libavformat    56. 25.101 / 56. 25.101
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 11.102 /  5. 11.102
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100

我不确定缺少什么。

修改

我按照本指南https://s3bubble.com/installing-ffmpeg-on-centos-6-6-in-usrlocalbin/ + alijandro的建议。

1 个答案:

答案 0 :(得分:6)

系统中安装的ffmpeg不支持编码器amr-nb,这是3gp格式的默认编码器。

查看您是否可以在编码器列表中找到

$ ffmpeg -encoders |grep amr_nb

你可以尝试

  1. 使用h263 / aac作为输出编码器,添加选项-vcodec h263 -acodec aac

  2. 或使用amr-nb支持构建ffmpeg

    • 从此处获取opencore源代码https://sourceforge.net/projects/opencore-amr
    • 编译源并安装到/path/to/opencore-amr
    • 获取ffmpeg的来源
    • 使用选项

      配置ffmpeg
      $./configure --enable-libopencore-amrnb \
      --enable-libopencore-amrwb \
      --enable-version3 \
      ...
      --extra-cflags="-I/path/to/opencore-amr/include" \
      --extra-ldflags="-L/path/to/opencore-amr/lib"
      ...
      # more configure options
      
    • 编译并安装ffmpeg,然后您的命令将起作用