После обновления php версии DL() функция не работает.

Я попытался с расширением = extension.so в php.ini его работает, но ниже команды

ffmpeg -y -i input.m4v -vcodec libx264 -vpre ipod640 -bt 50k -acodec libfaac -ac 2 -ar 48000 -ab 64k -s 480x320 output.mp4

Выдает ошибку

Неизвестный кодировщик 'libx264'

Ниже полное описание

root@server [~]# ffmpeg -y -i input.m4v -vcodec libx264 -vpre ipod640 -bt 50k -acodec libfaac -ac 2 -ar 48000 -ab 64k -s 480x320 output.mp4
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jan 30 2012 00:00:18 with gcc 3.4.6 20060404 (Red Hat 3.4.6-11)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --disable-indev=v4l2 --extra-cflags='-O2 -g -pipe -m64 -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libschroedinger --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-version3 --enable-x11grab
  WARNING: library configuration mismatch
  libavutil   configuration: --enable-shared --enable-libmp3lame --disable-yasm
  libavcodec  configuration: --enable-shared --enable-libmp3lame --disable-yasm
  libavformat configuration: --enable-shared --enable-libmp3lame --disable-yasm
  libavdevice configuration: --enable-shared --enable-libmp3lame --disable-yasm
  libavfilter configuration: --enable-shared --enable-libmp3lame --disable-yasm
  libswscale  configuration: --enable-shared --enable-libmp3lame --disable-yasm
  libavutil     50.15. 1 / 50.36. 0
  libavcodec    52.72. 2 / 52.108. 0
  libavformat   52.64. 2 / 52.93. 0
  libavdevice   52. 2. 0 / 52. 2. 3
  libavfilter    1.19. 0 /  1.74. 0
  libswscale     0.11. 0 /  0.12. 0
  libpostproc   51. 2. 0 / 51. 2. 0

Seems stream 1 codec frame rate differs from container frame rate: 60000.00 (60000/1) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/machine/public_html/sterlingadmin/files/video_1402351414.m4v':
  Metadata:
    major_brand     : M4V 
    minor_version   : 1
    compatible_brands: M4V M4A mp42isom
    creation_time   : 2014-05-16 22:20:14
    title           : a3343_Spanish
  Duration: 00:07:11.59, start: 0.000000, bitrate: 4488 kb/s
    Stream #0.0(und): Audio: aac, 48000 Hz, stereo, s16, 114 kb/s
    Metadata:
      creation_time   : 2014-05-16 22:20:14
    Stream #0.1(und): Video: h264, yuv420p, 960x540 [PAR 1:1 DAR 16:9], 4369 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 60k tbc
    Metadata:
      creation_time   : 2014-05-16 22:20:14
Unknown encoder 'libx264'

1 ответ1

2

Здесь размещены статические сборки ffmpeg, которые даже работают на устаревших системах (ядра 2.6.32 и выше). Вы можете скачать его и поместить бинарный файл ffmpeg в какое-то место вашей файловой системы, например /usr/local/bin .

Затем из PHP вызовите /usr/local/bin/ffmpeg вместо вашей системы ffmpeg. Преимущество заключается в том, что теперь вы используете последнюю версию с меньшим количеством ошибок и большей функциональностью.

Вам нужно обновить командную строку, так как опция -vpre больше не существует.

/usr/local/bin/ffmpeg -y -i input.m4v -c:v libx264 -s:v 480x320 -profile:v baseline -c:a aac -strict experimental -ac 2 -ar 48000 -b:a 64k output.mp4

Поскольку кажется, что вы ориентируетесь на устройства с более низкими возможностями обработки, используйте baseline профиль.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .