#php #ffmpeg
#php #ffmpeg
Вопрос:
Я использую FFMPEG, установленный на сервере Windows. У меня есть веб-страница PHP, которая загружает и обрезает видео с помощью FFMPEG, когда я загружаю MP4 со звуком AAC, особенно видео размером более 100 МБ, я получаю следующие ошибки в выводе журнала ниже.
Мне было интересно, может ли кто-нибудь указать мне правильное направление для решения этой проблемы.
Лог-вывод ошибки ниже:
<pre>object(FFMpegExceptionRuntimeException)#35 (7) {
["message":protected]=>
string(15) "Encoding failed"
["string":"Exception":private]=>
string(0) ""
["code":protected]=>
int(0)
["file":protected]=>
string(108) "C:inetpubwwwrootdevffmpeg-libffmpeg-phpvendorphp-ffmpegphp-ffmpegsrcFFMpegMediaAbstractVideo.php"
["line":protected]=>
int(106)
["trace":"Exception":private]=>
array(1) {
[0]=>
array(5) {
["file"]=>
string(45) "C:inetpubwwwrootdevffmpeg-libprocess.php"
["line"]=>
int(35)
["function"]=>
string(4) "save"
["class"]=>
string(26) "FFMpegMediaAbstractVideo"
["type"]=>
string(2) "->"
}
}
["previous":"Exception":private]=>
object(AlchemyBinaryDriverExceptionExecutionFailureException)#43 (9) {
["command":protected]=>
string(393) "C:ffmpegbinffmpeg.exe -y -ss 00:00:17.00 -i "temp/temp_20201110-100656_1080p-220mb.mp4" -t 00:00:52.00 -threads 12 -vcodec libx264 -acodec aac -b:v 1000k -refs 6 -coder 1 -sc_threshold 40 -flags loop -me_range 16 -subq 7 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -trellis 1 -b:a 128k -pass 1 -passlogfile "W:/TempIISffmpeg-passes5fabd8bdf3612uvd6b/pass-5fabd8bdf378b" "temp/20201111-122741.mp4""
["errorOutput":protected]=>
string(830102) "ffmpeg version git-2020-08-31-4a11a6f Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.1 (GCC) 20200805
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --enable-librav1e --enable-libsvtav1 --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 58.100 / 56. 58.100
libavcodec 58.101.101 / 58.101.101
libavformat 58. 51.101 / 58. 51.101
libavdevice 58. 11.101 / 58. 11.101
libavfilter 7. 87.100 / 7. 87.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'temp/temp_20201110-100656_1080p-220mb.mp4':
Metadata:
major_brand : mp42
minor_version : 19529854
compatible_brands: mp42isom
creation_time : 2016-04-11T06:32:53.000000Z
Duration: 00:02:25.98, start: 0.000000, bitrate: 13772 kb/s
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2016-04-11T06:32:53.000000Z
handler_name : Sound Media Handler
Stream #0:1(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 13639 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
creation_time : 2016-04-11T06:32:53.000000Z
handler_name : Video Media Handler
encoder : AVC Coding
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[aac @ 000001fc5a9ce8c0] Sample rate index in program config element does not match the sample rate index configured by the container.
[h264 @ 000001fc5a3dac80] Invalid NAL unit size (-360624822 > 108076).
[h264 @ 000001fc5a3dac80] Error splitting the input into NAL units.
[aac @ 000001fc5a9ce8c0] Inconsistent channel configuration.
[aac @ 000001fc5a9ce8c0] get_buffer() failed
Error while decoding stream #0:0: Invalid argument
[aac @ 000001fc5a9ce8c0] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 000001fc5a9ce8c0] Inconsistent channel configuration.
[aac @ 000001fc5a9ce8c0] get_buffer() failed
Error while decoding stream #0:0: Invalid argument
[aac @ 000001fc5a9ce8c0] channel element 2.15 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 000001fc5a9ce8c0] Inconsistent channel configuration.
[aac @ 000001fc5a9ce8c0] get_buffer() failed
Error while decoding stream #0:0: Invalid argument
[h264 @ 000001fc5a3be480] Invalid NAL unit size (1926587749 > 39711).
[h264 @ 000001fc5a3be480] Error splitting the input into NAL units.
[h264 @ 000001fc5a3e4540] Invalid NAL unit size (-1483385910 > 21666).
[h264 @ 000001fc5a3e4540] Error splitting the input into NAL units.
[h264 @ 000001fc5ad06500] Invalid NAL unit size (1060193647 > 41388).
[h264 @ 000001fc5ad06500] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5ad22e80] Invalid NAL unit size (1499431567 > 26513).
[h264 @ 000001fc5ad22e80] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5a3dac80] Invalid NAL unit size (-23485766 > 46738).
[h264 @ 000001fc5a3dac80] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5a3be480] Invalid NAL unit size (2023411154 > 21613).
[h264 @ 000001fc5a3be480] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5a3e4540] Invalid NAL unit size (519125029 > 48521).
[h264 @ 000001fc5a3e4540] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5ad06500] Invalid NAL unit size (-2099015076 > 25631).
[h264 @ 000001fc5ad06500] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5ad22e80] Invalid NAL unit size (-1081182476 > 46590).
[h264 @ 000001fc5ad22e80] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] channel element 2.0 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Multiple frames in a packet.
[aac @ 000001fc5a9ce8c0] Sample rate index in program config element does not match the sample rate index configured by the container.
[h264 @ 000001fc5a3dac80] Invalid NAL unit size (-2080403149 > 27914).
[h264 @ 000001fc5a3dac80] Error splitting the input into NAL units.
[aac @ 000001fc5a9ce8c0] Inconsistent channel configuration.
[aac @ 000001fc5a9ce8c0] get_buffer() failed
Error while decoding stream #0:0: Invalid argument
[aac @ 000001fc5a9ce8c0] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 000001fc5a9ce8c0] Inconsistent channel configuration.
[aac @ 000001fc5a9ce8c0] get_buffer() failed
Error while decoding stream #0:0: Invalid argument
[aac @ 000001fc5a9ce8c0] channel element 3.9 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Reserved bit set.
[aac @ 000001fc5a9ce8c0] Prediction is not allowed in AAC-LC.
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] channel element 2.6 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Number of scalefactor bands in group (52) exceeds limit (49).
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] channel element 3.10 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] channel element 2.13 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] channel element 3.8 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Reserved bit set.
[aac @ 000001fc5a9ce8c0] Prediction is not allowed in AAC-LC.
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] channel element 3.9 is not allocated
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Number of bands (50) exceeds limit (49).
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 000001fc5a9ce8c0] Inconsistent channel configuration.
[aac @ 000001fc5a9ce8c0] get_buffer() failed
Error while decoding stream #0:0: Invalid argument
[aac @ 000001fc5a9ce8c0] Reserved bit set.
[aac @ 000001fc5a9ce8c0] Number of bands (17) exceeds limit (13).
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 000001fc5a9ce8c0] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 000001fc5a9ce8c0] Inconsistent channel configuration.
[aac @ 000001fc5a9ce8c0] get_buffer() failed
Error while decoding stream #0:0: Invalid argument
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5a3be480] Invalid NAL unit size (-296706614 > 48346).
[h264 @ 000001fc5a3be480] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5a3e4540] Invalid NAL unit size (-1419758286 > 23497).
[h264 @ 000001fc5a3e4540] Error splitting the input into NAL units.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000001fc5ad06500] Invalid NAL unit size (86578229 > 53255).
[h264 @ 000001fc5ad06500] Error splitting the input into NAL units.
Комментарии:
1. Вы уверены, что входной файл не поврежден каким-либо образом? Что вы получаете, когда запускаете ffmpeg в командной строке? Вы пытались сопоставить фактический битрейт аудио видео с вашей конфигурацией командной строки?
2. Я могу подтвердить, что видеофайл не поврежден, я пробовал с несколькими, они прямо с моего GoPro. Позвольте мне попробовать из командной строки
3. Я боюсь, что ошибки такие же, как указано выше, даже при сопоставлении битрейта видео с конфигурацией командной строки. Я думаю, мне, возможно, придется поискать другое решение для обрезки этих видео, поскольку FFMPEG не работает. У кого-нибудь есть какие-либо предложения по другому программному обеспечению с открытым исходным кодом, которое я могу использовать?