Ant*_*llo 5 command-line video-editor ffmpeg
使用 Ubuntu 18.04 我在 mp4 容器(h.264/mp3 编解码器)中有一些截屏视频文件,我想要有时合并(即 C.mp4 = A.mp4+B.mp4)或有时删除一些间隔(例如 D .mp4 = A.mp4[0,320{秒}]+A.mp4[325,340]+C.mp4)。
我现在正在使用 kdenlive,它可以工作,但是它重新编码了所有内容,对于这样的任务来说似乎有点太多了。
有没有更简单的方法来做到这一点而无需重新编码(甚至,也许是首选,命令行或稳定的 Python/Julia/R/.. 方式)?
我正在考虑 PDFtk 之类的东西 :-))
PS:我确实尝试过,ffmpeg -ss 00:00:05 -to 00:00:10 -i test1.mp4 test2.mp4但出现错误:
选项(记录或转码停止时间)不能应用于输入 url test1.mp4 - 您正在尝试将输入选项应用于输出文件,反之亦然。将此选项移动到它所属的文件之前。
我的文件具有相同的容器、编解码器和分辨率。
(我对视频一无所知..)
编辑:我不想显得悲观,但我越看越觉得我认为超级简单的东西确实超级复杂。可惜没有人写一个高级界面来执行这样的事情..我敢肯定我不是第一个有这种需求的人..
EDIT2:我找到了moviepy,但它仍然与我最初的想法相去甚远(它重新编码并且它的 API 比所需的要长。我可以编写它,但重新编码问题仍然存在):
pip install moviepy
from moviepy.editor import VideoFileClip, concatenate_videoclips
c1 = VideoFileClip("test1.mp4").subclip(0,5)
c2 = VideoFileClip("test1.mp4").subclip(10,15)
f = concatenate_videoclips([c1,c2])
f.write_videofile(test2.mp4)
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以用 ffmpeg 做到这一点。您需要正确订购选项并添加两个选项:
ffmpeg -i INFILE.mp4 -vcodec copy -acodec copy -ss 00:01:00.000 -t 00:00:10.000 OUTFILE.mp4
Run Code Online (Sandbox Code Playgroud)
从这里开始。
好吧,正如我自己的问题中所发布的,这并不能解决重新编码的问题,但至少它是一个方便的界面。只需将其与
vcat -i inputfile1,inputfile2[start-end],... -o <outputfile>
Run Code Online (Sandbox Code Playgroud)
vcat -i inputfile1,inputfile2[start-end],... -o <outputfile>
Run Code Online (Sandbox Code Playgroud)
免责声明:我已经有一段时间没有使用Python了,所以肯定会有更好的方法.. bdw 能够在几个小时内完成你想做的事情真是太好了,因为你可以在网上找到大量的文档关于蟒蛇..