一种ffprobe用于获取输入持续时间、bc计算所需输出持续时间以及ffmpeg执行切割的方法。此方法不需要输入包含音频流,但它需要两个额外的工具 (ffprobe和bc) 而不仅仅是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)
| 归档时间: |
|
| 查看次数: |
3181 次 |
| 最近记录: |