Вопрос

У меня возникли несколько проблем с преобразованием видеофайлов из командной строки с помощью FFMPEG.Я использую сервер CentOS, но, к сожалению, у меня нет доступа к командной строке.

Когда я подавляю звук с помощью следующей команды, все работает отлично (за исключением, конечно, отсутствия звука!).

ffmpeg -i $infile -an test.flv

Однако, когда я пытаюсь включить звук в Любой вообще говоря, размер выводимого файла равен нулю КБ.

FFMPEG скомпилирован с поддержкой libmp3lame и libfaac, и установлены необходимые кодеки.Вот конфигурация FFMPEG на сервере:

Версия FFmpeg SVN-Runnknown, Авторское право (c) 2000-2007 Фабрис Беллард и др.конфигурация:--префикс=/usr --libdir=/usr/lib --mandir=/usr/share/man --incdir=/usr/include/ffmpeg --включить-libmp3lame --включить-libogg --включить-libvorbis --включить-libogg --включить-libtheora --включить-libfaad --включить-libfaac --включить-libgsm --включить-xvid --включить-x264 --включить-liba52 --включить-liba52bin --включить-pp --включить-общий --включить-pthreads --включить-gpl --отключить-strip

Вот очень небольшой пример некоторых команд, которые я пробовал, которые приводят к размеру файла 0 КБ:

ffmpeg -i $infile test.flv
ffmpeg -i $infile -vcodec copy -acodec ac3 test.flv
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec mp3 test.flv
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec copy $outfile
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec aac $outfile

Если кто-нибудь может дать какие-либо подсказки о том, что здесь происходит, я был бы очень признателен!

Редактировать - вот результат, когда я перенаправляю stderr в файл

Версия FFmpeg SVN-Runnknown, Авторское право (c) 2000-2007 Фабрис Беллард и др.конфигурация:--префикс=/usr --libdir=/usr/lib --mandir=/usr/share/man --incdir=/usr/include/ffmpeg --включить-libmp3lame --включить-libogg --включить-libvorbis --включить-libogg --включить-libtheora --включить-libfaad --включить-libfaac --включить-libgsm --включить-xvid --включить-x264 --включить-liba52 --включить-liba52bin --включить-pp --включить-shared --включить- pthreads --включить-gpl --отключить-удалить версию libavutil:49.4.0 версия libavcodec:51.40.4 версия libavformat:51.12.1 добавлено 4 июня 2007 г. 11:02:12, gcc:4.1.1 20070105 (Красная шляпа 4.1.1-52)

Ввод #0, mov, mp4, m4a, 3gp, 3g2, mj2, из '/path/to/7b4e37e703ce0a104f027cb9125b1a19.mp4':Продолжительность:00:00:32.4, начало:0.000000, битрейт:поток 122 кб/с #0.0 (jpn):Видео:h263, yuv420p, 176x144, 29.97 кадров в секунду (r) Поток #0.1 (jpn):Аудио:samr / 0x726D6173, 8000 Гц, моно

Вывод #0, flv, в '/path/to/test.flv':Поток #0.0:Видео:flv, yuv420p, 176x144, q=2-31, 200 кб/с, 29.97 кадров в секунду (c) Поток #0.1:Аудио:mp3, 8000 Гц, моно, 64 КБ /с Отображение потоков:Поток #0.0 -> #0.0 Поток #0.1 -> #0.1

Неподдерживаемый кодек (id=73728) для входного потока #0.1

Это было полезно?

Решение

Какой у вас доступ к серверу - у вас должна быть какая-то возможность запускать на нем команды.

В таком случае, каков вывод ошибки из ffmpeg?

Возможно, подходящий подробный аргумент рассказал бы вам больше об этой проблеме?

Редактировать:

Давайте посмотрим, сможем ли мы получить вывод stderr.Бежать:

ffmpeg -version 

И посмотрите, сможете ли вы получить какой-нибудь результат для этого.Как только вам удастся извлечь некоторые выходные данные stderr, мы сможем исследовать исходную проблему.

Редактировать:

Так что, похоже, ты проигрываешь stderr - теперь тебе нужно придумать, как его извлечь.

Может быть:

ffmpeg -version 2>&1

сработает ли?

Редактировать:

Как мы к чему-то приближаемся - входной аудиокодек не поддерживается:

Unsupported codec (id=73728) for input stream #0.1

Я не знаю, что Stream #0.1(jpn): Audio: samr / 0x726D6173, 8000 Hz, mono есть.

Но есть и твоя проблема.

Я предполагаю, что вы, возможно, захотите провести расследование в локальной системе Linux - возможно, так будет легче выявить проблемы.

Редактировать:

От http://www.nabble.com/Convert-3gp-samr-file-td20514476.html похоже, что ffmpeg может быть скомпилирован с поддержкой --enable-libamr-nb --enable-libamr-wb.

Является перекомпиляцией ffmpeg есть вариант?

Другие советы

Я решил эту проблему. Вот мой код:

<?php
   define('FFMPEG_LIBRARY', '/usr/local/bin/ffmpeg');
   $exec_string = FFMPEG_LIBRARY.' -i robot.avi -an output.flv';
   exec($exec_string); //where exec is the command used to execute shell command in php
?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top