如何快速剪切音频/视频


150

如果仅需要从更长的轨道上裁剪音频/视频,该怎么用?我尝试过使用OpenShot,但是我发现导出视频的速度很慢,也许将所有“图层”都编入了新电影中?也许我只需要一个简单的“裁剪”工具就可以音频/视频冲浪?


您要处理哪种视频格式?您在寻找GUI或CLI解决方案吗?
fossfreedom

1
格式可能是mp4,flv,mp3。GUI或CLI都可以。
孟梦

Answers:


159

我将要提到的命令ffmpeg或avconv(新命令)可以将文件明显地分成几组。例如:

音频MPEG

ffmpeg -ss 00:00:00 -t 00:30:00 -i input.avi -vcodec copy -acodec copy output1.avi
ffmpeg -ss 00:30:00 -t 00:30:00 -i input.avi -vcodec copy -acodec copy output2.avi  
ffmpeg -ss 01:00:00 -t 00:30:00 -i input.avi -vcodec copy -acodec copy output3.avi

要么

ffmpeg -ss 0 -t 100 -i source.m4v -vcodec copy -acodec copy part1.m4v
ffmpeg -ss 100 -t 100 -i source.m4v -vcodec copy -acodec copy part2.m4v  
ffmpeg -ss 200 -t 100 -i source.m4v -vcodec copy -acodec copy part3.m4v  
ffmpeg -ss 300 -t 100 -i source.m4v -vcodec copy -acodec copy part4.m4v

AVCONV

avconv -i input.avi -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 output1.avi
avconv -i input.avi -vcodec copy -acodec copy -ss 00:30:00 -t 00:30:00 output2.avi  
avconv -i input.avi -vcodec copy -acodec copy -ss 01:00:00 -t 00:30:00 output3.avi

要么

avconv -ss 0 -i source.m4v -t 100 -vcodec copy -acodec copy part1.m4v
avconv -ss 100 -i source.m4v -t 100 -vcodec copy -acodec copy part2.m4v
avconv -ss 200 -i source.m4v -t 100 -vcodec copy -acodec copy part3.m4v  
avconv -ss 300 -i source.m4v -t 100 -vcodec copy -acodec copy part4.m4v

或执行以下脚本:http : //icephoenix.us/notes-for-myself/auto-splitting-video-file-in-equal-chunks-with-ffmpeg-and-python/


6
当心:根据手册页[ linux.die.net/man/1/ffmpeg ],这会导致切割不自然,重叠。例如,第二条命令从00:30:00开始,但持续一个小时;也就是说,直到01:30:00,所以从01:00:00开始的第三个命令将产生重叠的切割。这可能是目标,但这不是很自然。
ezequiel-garzon 2012年

1
我可以保证ezequiel提到的内容。使用ffmpeg或avconv进行测试时,如果使用上述时间,则会出现重叠效果。我将更新为更准确的效果,尽管我应该提到第一秒也会重叠。我将同时修复这两个问题并将avconv添加到该组。谢谢ezequiel。
Luis Alvarado 2012年

谢谢!但是这些ppa版本已过时。Precise 12.04中的版本是否良好?还是有人可以提出更好的建议?
nealmcb 2013年

感谢您通知我。当我回到家时,我将发布更新的链接。
路易斯·阿尔瓦拉多

1
至少在使用avconv时,您不需要分别调用视频和音频编解码器。您应该只使用$ avcon -i输入文件-codec复制[任何选项-ss -t -fs ...只需在ubuntu.manpages.com上查看avconv]输出文件
Antonio

31

使用ubuntu avconv的新版本

avconv -i srcFileName -c:a copy -c:v copy -ss 00:03:40 -t 00:01:12 targetFileName
  • 第一个论证时间是时间
  • 第二个参数是持续时间(不是结束时间),持续时间可以以秒为单位,也可以采用“ hh:mm:ss [.xxx]”的形式。

要指定结束时间,请使用选项-to [结束时间]。

请参阅ffmpeg文档以获取更多信息


谢谢,专家。该死,在做任何事情之前,不要阅读线程中的第三级答案。没有此示例,examples将无法关闭视频记录(“ -vn”由于某种原因而无法产生这种效果),并且还会遇到其他问题。顺便说一句,“-c:s复制”对字幕有同样的作用吗?
Incnis Mrsi

同样,根据我的经验,当仅切出最后一部分时(即,当新视频的开头与原始视频的开头重合时),“-ss 0”可能会出现问题,应省略。Ī̲某个程序(即Bombono DVD)崩溃,试图读取用“ -ss 0”代替原始文件制成的文件。
Incnis Mrsi 2015年

谢谢菲利普!这对我很有帮助。请问参数-c:a copy -c:v copy是什么意思?
Alex

2
@Alex c = codec a = audio v = video
Philippe Gachoud

1
@Alex copy将音频编解码器和视频编解码器复制到目标流。查看更多@ ffmpeg.org/ffmpeg.html#Main-options,并参阅ffmpeg文档以获取更多信息
Philippe Gachoud

30

根据我的经验,kdenlive是最简单的软件,它将使您能够在几个步骤中毫无问题地执行该任务。即便如此,OpenShot Video Editor项目也很有用,但它仍然需要大量努力才能接近kdenlive。

以下是kdenlive和openshot的屏幕截图:

在此处输入图片说明

在此处输入图片说明

祝好运!


Kdenlive是我的最爱。使用我的Kodak Zi8相机的MOV文件时,所有其他Linux编辑器都崩溃了。易于使用,功能非常强大。
拉蒙·苏亚雷斯

1
不知道我的编辑是怎么回事。在编辑模式下看起来不错,但在这里混乱了。
Insperatus 2012年

对不起,我听不懂。您介意提供更多细节吗?如果您认为有必要,请提出一个有关您的问题的问题。谢谢!
Geppettvs D'Constanzo'9年

3
最简单的软件 Kdenlive问的不相关的问题地狱甚至开始项目之前。但是,当要执行某项操作时,它就会生成,avconv并且每当失败时,Kdenlive都不会提供帮助以纠正情况,甚至不报告它使用的确切参数avconv。对于只愿意修剪视频文件的人来说绝对是不明智的选择。
Incnis Mrsi 2015年

2
就个人而言,kdenlive看起来不错,但是界面非常不直观并且不必要地复杂。另外,似乎还有一些错误。加载剪辑后,有时会播放剪辑。有时并非如此。不建议。
导航

13

我喜欢kdenlive也可以完成或剪裁一些小片段...但是,如果他想将大型讲座分成更小的片段,则可以尝试:

ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg -ss 00:00:35 -t 00:00:30 out2.mpg

该命令的讨论在这里:http : //ubuntuforums.org/showthread.php?t=480343


您还可以使用winff(ffmpeg的GUI)
jahid65

8

OpenShot Video Editor看起来很有希望。你检查了吗?检出功能:http : //www.openshot.org/features/

官方安装方法是通过https://www.openshot.org/download/上的AppImage获得。

要安装它,只需打开终端并运行以下命令:

sudo add-apt-repository ppa:jonoomph/openshot-edge
sudo apt-get update
sudo apt-get install openshot openshot-doc

试一试。 替代文字


如果他使用特立独行,它将在存储库中
Sabacon,2010年

Openshot FTW!:)
OpenNingia 2010年

如果OP仅希望快速裁剪视频,则AVIDemux的使用要比OpenShot容易得多。我刚刚尝试了这两种方法-OpenShot令人惊讶,因为它让我定义了一个视频轨道的入点和出点。
Dan Dascalescu

OpenShot绝对比此处的其他任何受好评的答案更加用户友好。
导航

问题中提到OpenShot是失败的程序,但对我来说是可以接受的(导出速度很慢,但至少可以预览到我切割的位置并且没有崩溃-与我尝试过的其他解决方案不同)。
Mateusz Konieczny



2

可以进行剪切,合并,缩放等操作…Blender(是的,此3D编辑器,但也有视频编辑部分)。您需要锻炼一些20分钟的教程才能生存下来,但使用起来似乎令人意外。



2

我为此使用ffmpeg CLI界面。这是非常容易和快速的:

  • 剪切视频:

    ffmpeg -i InputFile -vcodec copy -acodec copy -ss 00:00:00 -t 00:01:32 OutPutFile
    
  • 剪切音频:

    ffmpeg -i InputFile  -vn -acodec copy -ss 00:00:00 -t 00:01:32 OutPutFile
    

这两者都是-ss起点,而-t作品的持续时间则是起点。

您可以计算持续时间,例如使用LibreOffice Calc或python的dateutil软件包,也可以使用-to直接接受结束时间的选项。


1

我使用Kdenlive,但是即使您可以在PiTiVi中以这种方式切片视频,也不会感到惊讶:

  1. 使用您的完整授课内容创建一个新项目。
  2. 在剪辑监视器中为第一个“可管理块”设置起点和终点。
  3. 从剪辑监视器中的视频向下拖动到您的时间轴。这只是您选择的块。
  4. 在剪辑监视器中设置新的起点和终点,然后根据需要重复。

1
我环顾四周,找不到任何方法可以将长片段分为多个我可以轻松管理的短片段。没有“剪辑监视器”;PiTiVi非常简单(我的意思是,这是一种很好的方法!)显然,我可以剪辑视频并在时间轴中重新组织未命名的块,但是我想知道是否有更好的方法。
埃文·克罗斯克

1

在PiTiVi 0.13.5(Ubuntu 10.10)中,我可以简单地选择一个剪辑,然后转到“时间轴”>“拆分”(或只需按“ S”)。


1

为了快速切割,我使用了MythTV。我录制了一些节目,让它自动搜索广告时段并微调找到的标记。此后,我启动了神话存档功能,并将所有内容刻录到DVD,没有广告。

我不得不承认,它大约在2006年左右就开始运作了。在2008年或2009年的某个地方,某些更新毁了一切,我的标志物以某种方式发生了变化。

目前,我正在重新安装此神话材料,以查看是否可以使修剪器/编辑器和存档器正常工作。


1

vidcutter是用于在ubuntu中剪切,修剪和合并视频的非常有用的工具:

安装vidcutter:

sudo add-apt-repository ppa:ozmartian/apps
sudo apt update
sudo apt install vidcutter

在Ubuntu 17.10中工作



1

昨天,我刚刚发现可以使用youtube帐户在线进行操作:)如果您很着急,并且没有足够的时间尝试使用哪种ubuntu软件,请在线进行操作。

转到youtube帐户,上传视频,然后选择“视频管理器”,有一个“增强”选项,在右下角有“修剪”选项

如果仍然找不到,请观看此1分钟的教程

修剪菜单的屏幕截图



0

我为ffmpeg写了一个模仿substr()语法的助手。

用法

ffslice infile [start [duration [outfile [ffmpeg-args]]]]

例子

# Get the last 5 minutes of an MP3
ffslice input.mp3 -5:00

# Get the first 30 seconds of a webm
ffslice input.webm 0 30

# Get 5 minutes of video starting at 2 minutes in
ffslice input.mp4 2:00 5:00

#!/bin/bash
# substr() for MPEG-encoded files

infile="$1"; shift
start="$1"; shift
end="$1"; shift
outfile="$1"; shift
args=()

# Input file requred
if [ -z "$infile" ]; then
  echo "Usage: $(basename -- "$0") infile [start [duration [outfile [ffmpeg-args]]]]" >&2
  echo "Example: $(basename -- "$0") input.mp3 -5:00" >&2
  exit 1
fi

# Start
if [ "${start:0:1}" = "-" ]; then args+=('-sseof' "$start")
elif [ -n "$start" ]; then args+=('-ss' "$start")
fi

# Input
args+=('-i' "$infile")

# Duration
if [ "${end:0:1}" = "-" ]; then args+=('-sseof' "$end")
elif [ -n "$end" ]; then args+=('-to' "$end")
fi

# Default output filename
if [ -z "$outfile" ]; then
  filename=$(basename -- "$infile")
  extension="${filename##*.}"
  filename="${filename%.*}"
  outfile="${filename}-${start}-${end}.${extension}"

  # Cannot have colon in the filename with ffmpeg
  # https://unix.stackexchange.com/questions/412519/ffmpeg-protocol-not-found-for-normal-file-name
  outfile="$(printf "$outfile" | sed 's/:/./g')"
fi

ffmpeg "${args[@]}" -c copy "$@" "$outfile"

警告

请注意,ffmpeg仅在关键帧上分割。在大多数情况下,这通常效果很好,但是如果您需要精确的视频片段,请参阅如何使用ffmpeg提取时间精确的视频片段?。您可以在分段之前强制所有必需的关键帧。


-1

皮蒂维太复杂了吗?好吧...我建议您学习如何使用鼠标,然后大声笑

无论如何,我总是使用Kdenlive。只需导入视频,将其拖到时间轴上,单击要分割的位置,右键单击它,然后选择剪切即可。然后删除不需要的部分。


感谢您的有用建议,但是对于我的需求,它们太复杂了。请注意,我并没有说太难使用,只是出于我的目的而肿了。我最终使用了openshot
jfoucher

1
@jfoucher:那么您应该接受Geppettvs的回答;)
塔卡特(Takkat

-1

我一直在为同样的问题而苦苦挣扎,有一个大的视频文件,我想将其剪切并保存为单独的场景。在尝试了通常由其他人列出的嫌疑人中执行此操作之后,我最终使用了Kino

您将必须导入文件,因为Kino需要以dv格式(无论是哪种格式)导入文件,然后可以在“编辑”选项卡上为每个剪辑指定起点和终点,然后在“导出”选项卡上分别导出每个剪辑。效果很好,速度很快,最慢的部分是视频文件的初始导入。您甚至可以为每个剪辑添加标题等效果。

我发现很难找到切开Kino场景的确切位置,当我在内置播放器中播放vid时,没有声音(导出时会出现声音)并且播放速度太快,因此我在avidemux中播放视频,找到我想剪切的时间或帧号,然后在Kino中使用此信息。

我确实发现它崩溃了(我使用Ubuntu 15.04 Kino v1.3.4),但是它会在重启时恢复到原来的状态。


Kino网页上的更新:

Kino是一个死项目
(05.08.2013 14:15)
Kino自2009年以来一直没有得到积极维护。我们鼓励您尝试其他Linux视频编辑器,例如Shotcut,Kdenlive,Flowblade,OpenShot,PiTiVi,LiVES和LightWorks。

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.