Linux - 从最终位置剪切视频


2

我一直在寻找用于Linux的不同视频剪切命令行工具,我似乎无法找到任何支持从最终剪切视频的操作。

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

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

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

任何帮助深表感谢。


你用ffmpeg试过了什么? ffmpeg适用于此。不幸的是,“最后一秒”选项不存在,但您可以使用 -ss (时间偏移)和 -t (持续时间)选项获得最后3秒。
llogan

我尝试了-t选项,但是在最后3秒内无法使其工作,因此问题。

Answers:


4

以下可能不是最优雅的方式,但它的工作原理。

为方便起见,将filename插入变量:

file="yourvideo.avi"

获取视频长度-3秒(设置为-3) sed 命令 - 我们削减 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)

用。切 FFmpeg的 ffmpeg ) 要么 Libav avconv )的起始位置 $start

avconv -ss $start -t 3 -i $file -vcodec copy -acodec copy end_${file}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.