Я пытаюсь объединить .mp4
файлы. Я использую fluent-ffmpeg
и @ffmpeg-installer/ffmpeg
Вот псевдокод:
let mergeClips = ffmpeg();
for (let i = 0; i < 5; i++) {
await downloadVideo(newUrl, './testVideos/0/' + i + '.mp4');
mergeClips = mergeClips.mergeAdd('./testVideos/0/' + i + '.mp4');
}
mergeClips.mergeToFile('compilation.mp4', './temp');
Это приводит к ошибкам. Ниже приведена команда, отправленная fluent-ffmpeg
:
ffmpeg -i ./testVideos/0/0.mp4 -i ./testVideos/0/6.mp4 -i ./testVideos/0/14.mp4 -i ./testVideos/0/15.mp4 -y -filter_complex concat=n=4:v=1:a=0 ./testVideos/0/compilation.mp4
Когда я запускаю команду вручную, я получаю следующее:
PS C:\path> ffmpeg -i ./testVideos/0/0.mp4 -i ./testVideos/0/6.mp4 -i ./testVideos/0/14.mp4 -i ./testVideos/0/15.mp4 -y -filter_complex concat=n=4:v=1:a=0 ./testVideos/0/compilation.mp4
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.1 (GCC) 20190807
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-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-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './testVideos/0/0.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.12.100
Duration: 00:00:04.49, start: 0.000000, bitrate: 257 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 460x460, 254 kb/s, 22.05 fps, 100 tbr, 12800 tbn, 200 tbc (default)
Metadata:
handler_name : VideoHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from './testVideos/0/6.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.12.100
Duration: 00:00:05.04, start: 0.000000, bitrate: 1088 kb/s
Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 720x404, 1086 kb/s, 24.01 fps, 100 tbr, 12800 tbn, 200 tbc (default)
Metadata:
handler_name : VideoHandler
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from './testVideos/0/14.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.12.100
Duration: 00:00:26.99, start: 0.000000, bitrate: 52 kb/s
Stream #2:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 250x444, 52 kb/s, 6 fps, 100 tbr, 12800 tbn, 200 tbc (default)
Metadata:
handler_name : VideoHandler
Input #3, mov,mp4,m4a,3gp,3g2,mj2, from './testVideos/0/15.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.12.100
Duration: 00:00:00.19, start: 0.000000, bitrate: 17599 kb/s
Stream #3:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080, 17564 kb/s, 36.84 fps, 33.33 tbr, 12800 tbn, 200 tbc (default)
Metadata:
handler_name : VideoHandler
Stream mapping:
Stream #0:0 (h264) -> concat:in0:v0
Stream #1:0 (h264) -> concat:in1:v0
Stream #2:0 (h264) -> concat:in2:v0
Stream #3:0 (h264) -> concat:in3:v0
concat -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[Parsed_concat_0 @ 000001768445cf40] Input link in1:v0 parameters (size 720x404, SAR 0:1) do not match the corresponding output link in0:v0 parameters (460x460, SAR 0:1)
[Parsed_concat_0 @ 000001768445cf40] Failed to configure output pad on Parsed_concat_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #3:0
Conversion failed!
Видео загружаются правильно.
Кто-нибудь знает, что здесь происходит?