Спасибо slhck за предложение изучить журнал конверсий.
Кажется, мой исходный файл поврежден.
Я задокументировал свой процесс ниже.
Я не знаю, как получить вывод ffmpeg из библиотеки PHP-FFMpeg.
Поэтому я использовал getFinalCommand()
для вывода команды ffmpeg:
$video = $ffmpeg->open('test/source.mp4');
echo $video->getFinalCommand(new FFMpeg\Format\Video\X264(), 'test/export.mp4')[0];
-y -i test / source.mp4 -vcodec libx264 -acodec libfaac -b: v 1000k -refs 6 -кодер 1 -sc_threshold 40 -flags + loop -me_range 16 -subq 7 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -trellis 1 -b: 128k -pass 1 -passlogfile / tmp / ffmpeg-pass5d108f0d5007cirj2x / pass-5d108f0d500f9 test / export.mp4
Я выполнил командуэта ошибка:
[libx264 @ 0x2395ec0] ratecontrol_init: невозможно открыть файл статистики
Ошибка инициализации выходного потока 0: 0 - Ошибка при открытии кодировщика для выходного потока
# 0:0 - возможно, неверные параметры, такие как bit_rate, rate, width или height
Кажется passlogfile
Это вызвало проблемы, поэтому я удалил его и получил:
поврежденный входной пакет в потоке 0: 04.76 битрейт = 880.0 кбит / с скорость = 3.15x
[h264 @ 0x7b4500] Неверный NALразмер блока (51618> 33287).
[h264 @ 0x7b4500] Ошибка разделения входа на блоки NAL.
Ошибка при декодировании потока # 0: 0: при обработке ввода
* 1038 обнаружены неверные данные* Похоже, что мой исходный видеофайл был поврежден.
Я перегрузил его, и ошибка исчезла.
В процессе, я также обнаружил, что "аудиокодек libfaac был удален из ffmpeg "( iki789 ), что" есть лучшие альтернативы "( llogan ), и что для аудиокодека можно установить значение" aac ", например так:
$format = new \FFMpeg\Format\Video\X264();
$format->setAudioCodec("aac");
$video = $ffmpeg->open('test/source.mp4');
$video->save($format, 'test/export.mp4');