Batch file 使用ffmpeg和windows批处理命令修改视频

Batch file 使用ffmpeg和windows批处理命令修改视频,batch-file,ffmpeg,command-prompt,Batch File,Ffmpeg,Command Prompt,我有一系列的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

我有一系列的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"
    )
)

在尝试编写脚本之前,您是否验证了每个
ffmpeg
ffprobe
命令在cmd/Powershell中都有效?是的,它们都有效,但我最终成功地使其有效,因此,我将删除该问题如果您提供了问题的答案,而不是删除该问题,以防其他人有类似问题。在尝试编写脚本之前,您是否验证了每个
ffmpeg
ffprobe
命令在cmd/Powershell中都有效?是的,它们都有效,不过,我最终还是设法让它起作用了,所以我将删除这个问题。如果你能为你的问题提供答案,而不是删除它,那会更好,以防其他人有类似的问题。