Linux - 从结束位置剪切视频

Linux - 从结束位置剪切视频

我一直在研究适用于 Linux 的不同视频剪切命令行工具,但似乎找不到任何支持从末尾剪切视频操作的工具。

例如,我有 10 个长度不定的视频。我需要获取每个视频的最后 3 秒。

我研究了 ffmpeg 和 mpgtx,但无济于事。

有人能告诉我从结束位置剪切视频的工具/命令吗?

任何帮助深表感谢。

答案1

以下可能不是最优雅的方法,但它确实有效。

为了方便起见,将文件名插入到变量中:

file="yourvideo.avi"

获取视频长度 -3 秒(sed命令中设置 -3 - 我们在最后剪切ID_LENGTH=并添加):-3

start=$(mplayer -identify -vo dummy -ao dummy -really-quiet "$file" 2>/dev/null | sed -n '/ID_LENGTH=/s/ID_LENGTH=\(.*\)/\1-3/p' | bc)

你可以用AVPROBE 系统或者ffprobe(由 avconv 或 ffmpeg 提供):

start=$(avprobe -i "$file" -show_format 2> /dev/null | sed -n '/duration=/s/duration=\(.*\)/\1-3/p' | bc)

切割FFmpegffmpeg) 或者利巴夫avconv)的起始位置为$start

avconv -ss $start -t 3 -i $file -vcodec copy -acodec copy end_${file}

相关内容