Слияние видео с использованием ffmpeg - PullRequest
0 голосов
/ 29 марта 2020

довольно базовый c скрипт узла, который я использую для объединения двух файлов mp4, в настоящее время имеет ошибку:

Ошибка ffmpeg с кодом 1: ошибка при повторной инициализации фильтров! Не удалось вставить кадр в сеть фильтра: Неверный аргумент Ошибка при обработке декодированных данных для потока # 1: 0 Преобразование не удалось!

Если я объединяю 2 одинаковых видео вместе, это работает, но когда я использую 2 разных видео, это бросает эту ошибку! я использовал первый фрагмент кода, чтобы изменить размер и соотношение сторон, но все же не повезло! Я потратил часы на поиск этого исправления. как же ты сливаешь 2 разных видео вместе.

Я видел, как люди комментируют: 1. Различия в размерах 2. Аспект не в порядке 3. Вы можете использовать Unsafe = 1 ???? 4. может быть другая частота кадров на файлах?

любая помощь будет потрясающей! ура!

var fluent_ffmpeg = require("fluent-ffmpeg");
var fs = require('fs');
var ffmpeg = require('fluent-ffmpeg');


//ATTEMPT TO RESIZE VIDEO FILES
//-------------------------------------------------------
var command = ffmpeg();
var command2 = ffmpeg();

var command = ffmpeg('./save/pokemon/name0.mp4')
  .videoCodec('libx264')
  .format('mp4');

var command2 = ffmpeg('./save/pokemon/name1.mp4')
  .videoCodec('libx264')
  .format('mp4');

command.clone()
  .size('640x?').aspect('4:3').autopad()
  .save('./save/name0.mp4')

command2.clone()
  .size('640x?').aspect('4:3').autopad()
  .save('./save/name1.mp4');
//-------------------------------------------------------

//MERGE VIDEOS TOGETHER
//-------------------------------------------------------
async function test()
{
    var mergedVideo = fluent_ffmpeg();

    var videoNames  = ['./save/name0.mp4','./save/name1.mp4']

    videoNames.forEach(function(videoName)
    {
        mergedVideo = mergedVideo.addInput(videoName);
    });

    mergedVideo.mergeToFile('./save/mergedVideo.avi', './tmp/').on('error', function(err) 
    {
        console.log('Error ' + err.message);

    }).on('end', function() 
    {
        console.log('Finished!');
    });
}
//-------------------------------------------------------
C:\gif>ffmpeg -i ./save/pokemon/name0.mp4 -i ./save/pokemon/name1.mp4
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20200122
  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 './save/pokemon/name0.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.26.101
  Duration: 00:00:01.14, start: 0.000000, bitrate: 1104 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x334 [SAR 1:1 DAR 240:167], 1098 kb/s, 33.33 fps, 33.33 tbr, 333333 tbn, 66.67 tbc (default)
    Metadata:
      handler_name    : VideoHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from './save/pokemon/name1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.26.101
    comment         : PhotoScape
  Duration: 00:00:01.80, start: 0.000000, bitrate: 1157 kb/s
    Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x358 [SAR 1:1 DAR 240:179], 1153 kb/s, 6.67 fps, 6.67 tbr, 666667 tbn, 13.33 tbc (default)
    Metadata:
      handler_name    : VideoHandler
At least one output file must be specified
...