未知编码器 libx264

未知编码器 libx264

我正在尝试使用mp4以下方式传输文件ffmpeg

ffmpeg -re -i '/home/alex/test.mp4' \
-vcodec libx264 -ab 128k -ac 2 -ar 44100 \
-r 25 -s 320x240 -vb 660k -f \
flv 'rtmp://192.168.1.24/live/stream0'

但是我收到此错误:

Seems stream 0 codec frame rate differs from container frame rate: 2997.00 (2997/1) -> 23.98 (24000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/alex/test.mp4':
  Duration: 00:02:28.79, start: 0.000000, bitrate: 1143 kb/s
    Stream #0.0(und): Video: mpeg4, yuv420p, 856x368 [PAR 1:1 DAR 107:46], 23.98 tbr, 23.98 tbn, 2997 tbc
    Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16
Unknown encoder 'libx264'

我是ffmpeg从 Debian 存储库安装的:

$ cat /etc/debian_version 
6.0.7

完整控制台输出:

alex@alex:~$ ffmpeg -re -i '/home/alex/test.mp4' -vcodec libx264 -ab 128k -ac 2 -ar 44100 -r 25 -s 320x240 -vb 660k -f flv 'rtmp://192.168.1.24/live/stream0'
FFmpeg version SVN-r0.5.10-4:0.5.10-1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5.10-1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --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-libfaad --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 Feb 16 2013 09:22:58, gcc: 4.4.5

Seems stream 0 codec frame rate differs from container frame rate: 2997.00 (2997/1) -> 23.98 (24000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/alex/test.mp4':
  Duration: 00:02:28.79, start: 0.000000, bitrate: 1143 kb/s
    Stream #0.0(und): Video: mpeg4, yuv420p, 856x368 [PAR 1:1 DAR 107:46], 23.98 tbr, 23.98 tbn, 2997 tbc
    Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16
Unknown encoder 'libx264'

我如何指定ffmpeg使用libx264解码器?

答案1

您的 ffmpeg 版本在配置中缺失--enable-libx264;这意味着它未编译为支持 libx264 外部编码库。此外,ffmpeg 版本 0.5 被认为是过时的,因此我建议您编译 ffmpeg或使用最近的静态构建。可通过以下链接获取适用于 Linux、OS X 和 Windows 的构建:FFmpeg 下载页面。建议使用最新版本,因为它们通常很稳定并且开发非常活跃。

您正在从 856x368 缩放到 320x240,但这会垂直拉伸视频。使用 320x138 将保留您的宽高比,但要自动计算值,您可以使用scale过滤而不是-s

-vf scale=320:-1

将会-1告诉scale自动提供一个将保留方面的值。

相关内容