我需要一个程序来剪切视频(从中提取子视频),但是我绝对需要原始视频不会有任何质量损失。

只要我不需要做任何其他事情(例如编辑,调整大小,旋转,添加字幕,着色等),我便喜欢此程序易于管理。理想的情况是仅设置开始捕获,结束捕获和一个拆分按钮。

我已经测试了Allok视频分配器,但是即使我设置了以下设置,我也确信视频质量会有所下降(虽然不多,但确实存在)(音频保持正常,或者看起来还不错)。程序以达到最高质量。

首选开源方法。接受命令行方法。请使用Windows或Linux平台。我没有Mac。只要保持主要功能(无质量损失),在Android上执行此操作就没问题。

评论

在SU上查看此问题:superuser.com/questions/138331/using-ffmpeg-to-cut-up-video ...可能有点过时了,但是您可以使用此信息来回答自己的问题:-)

实际上,这甚至更适用于您的问题:superuser.com/questions/377343/…

#1 楼

我建议使用命令行和ffmpeg,如下所示:

ffmpeg -ss start_time -i input_file .ext -t持续时间-vcodec copy -acodec copy output_file .ext



.ext必须是受支持的视频类型,并且在两种情况下都必须相同。请注意,名称和.ext之间不应有空格,只有在上方才能使粗体和斜体起作用。

-ss应该在输入文件,这样可以选择开始时间之前的最后一个关键帧,并且必须在-t之前。其中start_time和duration可以是秒数,minutes:seconds,hours:minutes:秒和分钟和秒均以任何冒号格式限制为2位数字,并且任何秒都可以附加.milliseconds。

-vcodec copy -acodec copy通知ffmpeg您希望完全相同的视频和音频编码,即不会丢失质量。

还要注意,由于ffmpeg在所谓的管道中工作,因此大多数选项的顺序非常合理如果您的输出文件名出现在某些选项之前,那么它们将被认为是管道中下一阶段的选项,因此不会影响您的输出图像。这样做是为了使您可以在单个命令行上指定一个输入文件和几个具有不同选项的输出文件,例如,您可以每隔5分钟生成一个10秒的片段序列,以准备重新组合它们。 >
此解决方案是:


免费/免费提供
开源
除非您要求,否则质量没有变化

>如果需要,您可以更改格式,分辨率,顺序,添加静止帧以及几乎所有内容。
Windows,Linux和Mac

您确实需要查找分割时间和制作时间手动记录它们,但不要过分费力。

有很多可用于ffmpeg的GUI前端,许多程序没有提到它们真正所做的只是提供一个,而是为什么要为这样的简单操作而烦恼。

示例适用于OP的命令:

ffmpeg -i OriginalVideo.flv -ss 1:00 -t 3:00 -vcodec copy -acodec copy OutputFile.flv


感谢Sopalajo de Arrierez花一些时间进行实验并发布对他们有用的内容。

评论


谢谢@Steve,但是当您说«input_file和output_file都具有相同的名称»时,您是什么意思?这是不可能的。您是说“相同的扩展名”吗?

– Sopalajo de Arrierez
2015年10月16日15:46

@SopalajodeArrierez-完全是-我会编辑。

–史蒂夫·巴恩斯(Steve Barnes)
2015年10月16日15:47

从Windows 7测试了ffmpeg.exe -i“ PathToFile.flv” -ss 01:00“ PathToNewFile.flv” -t 01:00,以便从.flv视频的第一分钟到第二分钟提取。结果文件有很大的质量损失,一见钟情。

– Sopalajo de Arrierez
15-10-16在20:56



另一个建议,史蒂夫:如此处trac.ffmpeg.org/wiki/Seeking所述,对我来说,在-i input_file.ext之前指定-ss timestart效果更好,因为它设置了(或我理解)生成的开始。视频到您在指定时间戳记之前找到的最接近关键帧的位置。如果稍后指定,结果视频的前几秒钟可能会有一些延迟。此处提供更多信息:stackoverflow.com/questions/14005110/…。在.flv和.mp4文件上测试。

– Sopalajo de Arrierez
2015年10月17日15:32

除了音频不同步外,它的效果非常好。有针对这个的解决方法吗?

–bytecode77
16年11月13日在21:06

#2 楼

您正在寻找的是AviDemux。

AviDemux是用Linux制造的开源GUI视频处理软件,该软件还针对Windows(x86和x64)发行,还具有命令行版本。包中包含一个名为avidemux_cli.exe的文件。

它可以执行各种格式的转换,并且可以执行复制/剪切/粘贴操作而无需重新转换,这意味着0%的质量是在过程中丢失,因为它只是remux操作。

它具有非常友好的用户界面,非常适合于一次或在不同点剪切/分割视频,就像我说的那样,无需重新转换除非您指定相反的内容。



我爱AviDemux,您也会爱上它。在此处下载:

http://fixounet.free.fr/avidemux/download.html

评论


经过测试的最新v2.6.10 64位可从5分钟的.flv视频中提取4分钟:结果是一个.avi文件,其中包含音频,但根本没有视频。

– Sopalajo de Arrierez
15年10月16日在21:16

@Sopalajo de Arrierez如果正在使用FLV视频,请尝试在“输出格式”列表中选择FLV Muxer而不是AVI Muxer。

– ElektroStudios
15-10-17在4:09



fosshub.com/Avidemux.html/avidemux_2.6.13_win64.exe不起作用

–user4951
16年3月3日在17:49

与@SopalajodeArrierez相同的问题。匹配的音频/视频编解码器输入和输出。

–地狱掠夺者
18年2月12日在19:15

使用向上和向下在关键点之间移动并使用ctrl + pgup / down选择要删除的段,以允许Avidemux保存而无需重新编码。

– Nakilon
20 Dec 24'5:05



#3 楼

我想通过在另一个似乎解决ffmpeg的音频同步和帧冻结问题的线程上引用我的此解决方案来完成其他答案:

关键帧问题

(好奇的)解决方案是在-ss之前键入-i参数。

#4 楼

我建议为Windows使用VideoReDo。标记开始和结束,然后单击剪切。
完成剪切后,单击保存并以原始格式保存。

评论


这个工具真的可以转换而不会造成任何损失吗?我目前测试过的所有内容(包括ffmpeg)都会降低质量。

– Sopalajo de Arrierez
15年10月16日在21:17

唯一真正的编辑方法是将其转换为未压缩的AVI。然后,只要保留它就不会降解。但是,除了文件大小增加了100倍之外。

–cybernard
15年10月16日在21:59

“正确的编辑方式?”。我不需要编辑视频。问题仅在于削减。

– Sopalajo de Arrierez
2015年10月16日22:00



让我改一下。唯一获得100%损失的方法是在未压缩的AVI中减少剪切。 99.9%的压缩技术使用下一帧中前一帧的部分数据。当您将一个大块切出2个帧时,编辑两侧的1个都会被修改,并且会产生少量损失。仅单帧压缩方法将100%未经修改。到目前为止,这些技术已不复存在。但是,未压缩的AVI就是未压缩的,并且每一帧都是彼此独立的,因此在剪切时,不会发生丢失,而在未压缩的情况下,也不会丢失。

–cybernard
2015年10月17日,0:01

ffmpeg有数十种设置,您可以使用正确的设置获得结果。但是,除非切点丢失或未压缩,否则在切点处丢失的量非常少。如果您将文件转换为未压缩的AVI并在完成后以这种方式保存,则任何视频编辑器都可以减少100%的损失。

–cybernard
2015年10月17日,0:04