У меня есть серия из 8 видео с разным количеством кадров, некоторые из них теряют пару из них в начале.Я пытался объединить в начале видео с меньшим количеством кадров копию их первого кадра.К сожалению, мой код либо вылетает при сравнении длины видео, либо не справляется с поставленной задачей.Здесь я добавляю код, который я использую.
@ECHO off
SETLOCAL EnableDelayedExpansion
MKDIR COMPRESSED\
MKDIR RAW\
SET j=0
SET jj=1
SET max=1
FOR %%a IN (*.avi) DO (
SET /A j=j+1
FOR /F "delims=" %%V IN ('ffprobe.exe -v error -count_frames -select_streams v:0 -show_entries stream^=nb_read_frames -of default^=noprint_wrappers^=1:nokey^=1 ".\%%~nxa" 2^>^&1') DO SET elem[!j!]=%%V
SET elem[!j!]
)
FOR %%a IN (*.avi) DO (
IF !elem[%jj%]! GTR !elem[%max%]!(
SET max=!jj!
)
SET /A jj=jj+1
)
SET max
SET /A x=1
FOR %%a IN (*.avi) DO (
IF "!elem[!x!]!" LSS "!elem[!max!]!" (
ffmpeg -i ".\%%~nxa" -vf "select=eq(n\,0)" -q:v 3 output_image.jpg
ffmpeg -y -i ".\%%~nxa" -loop 1 -i output_image.jpg -t 0.01 -s 1936x1216 ".\%%~nxa"
SET elem[!x!]=elem[!x!]+1
SET elem[!x!]
)
SET /A x=x+1
)
FOR %%a IN (*.avi) DO (
ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames ".\%%~nxa"
ffmpeg -i ".\%%~nxa" -c:v libxvid -vtag xvid -qscale:v 2 -force_key_frames 1 -s 968x400 -r 100 ".\COMPRESSED\%%a"
SET mystr=%%~na
SET mystr=!mystr:~-1!
IF !mystr! == 3 (
ffmpeg -i ".\%%~nxa" -c:v mpeg4 -b:v 4M -c:a libfdk_aac -b:a 192k ".\COMPRESSED\%%~na.mp4"
)
IF !mystr! == 5 (
ffmpeg -i ".\%%~nxa" -c:v mpeg4 -b:v 4M -c:a libfdk_aac -b:a 192k ".\COMPRESSED\%%~na.mp4"
)
)