剪切多个视频的结尾

Mar*_*ard 4 video ffmpeg cut trim

我需要一个脚本来切断多个视频的最后 6 秒。这些视频都有不同的长度。

我在网上找不到任何有用的东西。

有谁知道这是怎么做到的吗?谢谢

llo*_*gan 5

一种ffprobe用于获取输入持续时间、bc计算所需输出持续时间以及ffmpeg执行切割的方法。此方法不需要输入包含音频流,但它需要两个额外的工具 (ffprobebc) 而不仅仅是ffmpeg.

没有提到您首选的脚本语言,所以我假设 bash 可以。按照要求以脚本形式:

#!/bin/bash
for f in *.mp4; do
cut_duration=6
input_duration=$(ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 "$f")
output_duration=$(bc <<< "$input_duration"-"$cut_duration")
  ffmpeg -i "$f" -map 0 -c copy -t "$output_duration" output/"$f"
done
Run Code Online (Sandbox Code Playgroud)

或者作为一行:

for f in *.mp4; do ffmpeg -i "$f" -map 0 -c copy -t "$(bc <<< "$(ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 "$f")"-6)" output/"$f"; done
Run Code Online (Sandbox Code Playgroud)