2

Я преобразовал любой формат видео в формат файла 3gp, используя ffmpeg на одном сервере. Но на другом сервере это не работает.

Ниже приводится мой сценарий:

exec("ffmpeg -i test.flv -sameq -acodec libmp3lame -ar 22050 -ab 96000
    -deinterlace -nr 500 -s 320x240 -aspect 4:3 -r 20 -g 500 -me_range 20
    -b 270k -deinterlace -f flv -y test.3gp ");

Может кто-нибудь сказать мне, что не так в сценарии?

Следующее - моя настройка ffmpeg:

root @ ninja [~] # ffmpeg -формат ffmpeg версия CVS, сборка 3277056, Copyright (c) 2000-2004 Конфигурация Fabrice Bellard: --enable-mp3lame --enable-libogg --enable-gpl --disable-mmx - enable-shared построен 17 июня 2009 10:51:43, gcc: 4.1.2 20080704 (Red Hat 4.1.2-44)

2 ответа2

1

"-F flv" не правильно. Вы кодируете в 3gp, а не flv. Я думаю, что acodec должен быть aac, а vcodec должен быть h263, если кодек 3gp не шире, чем я думал.

В-третьих, в какой-то версии они изменили название кодеков. Если у вас старая версия ffmpeg (в ней написано 2004), это может быть "mp3" вместо "libmp3lame", если только моя память не обратная.

У вас также есть некоторые противоречивые параметры, но ffmpeg, вероятно, просто идет с последним. -sameq (соответствует качеству источника) конфликтует с -b (настроить качество для постоянного битрейта), и у вас -deinterlace дважды.

0

Вы не можете захватить какие-либо сообщения об ошибках из вашего сценария?

Я предполагаю, что вывод с вашего первого сервера? Убедитесь, что версия ffmpeg на втором сервере поддерживает flv и 3gp. Мне известны некоторые версии linux с урезанной версией ffmpeg из-за проблем с патентами в некоторых странах.

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