-1

с кодом

$a = exec('"ffmpeg" -y -i "test.mp4" -ab 128k -s 640x480 -vcodec mpeg4 -acodec:a copy "output.mp4" 2>&1 ', $output, $error);

Входной файл был 82.21 МБ, выходной файл был 13,74 МБ

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

Может кто-нибудь, пожалуйста, помогите мне с правильной командой ffmpeg для преобразования видеофайла, чтобы выходной файл был с разрешением 640 * 480, звуком 128Kbps, выходной файл должен быть MP4 контейнер видеокодек H.264 Аудио кодек AAC

Спасибо шилпа

Использование libx264 получил ошибку, которая говорит

 [52] => Stream mapping:
    [53] =>   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    [54] =>   Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
    [55] => Error while opening decoder for input stream #0:0 : Resource temporarily unavailable

Любая идея, почему эта ошибка происходит, это связано с тем, что ffmpeg не установлен должным образом. это мои настройки ffmpeg, которые я получил от phpinfo()

ffmpeg-php version  0.6.0-svn
ffmpeg-php built on     Oct 30 2014 22:27:42
ffmpeg-php gd support   enabled
ffmpeg libavcodec version   Lavc52.72.2
ffmpeg libavformat version  Lavf52.64.2
ffmpeg swscaler version     SwS0.11.0

Directive   Local Value Master Value
ffmpeg.allow_persistent 0   0
ffmpeg.show_warnings    0   0

1 ответ1

-1

Некоторая действительно хорошая информация о кодировке h264 здесь: https://trac.ffmpeg.org/wiki/Encode/H.264

Довольно хорошим эталоном являются стандартные настройки, которые будут лучше, чем использование кодека mpeg4 (что вы и использовали в исходном вопросе).

Пытаться:

ffmpeg -i test.mp4 -vf scale=640:480 -c:v libx264 -c:a libfdk_aac -ab 128k out.mp4

Если это работает для вас, вы можете изменить настройки кодирования для libx264, используя параметры по ссылке выше. Вы также можете изменить свой аудио кодек, если это поможет.

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