博科园物理学习者的笔记人芳觅

哇塞哇塞--一行命令搞定视频截取和gif制作!

2019-06-29  本文已影响59人  人芳觅

文|梁佐佐

假如你平时方便用Linux,或者为了更高效的做一些简单的视频剪辑,不妨试试Linux下强大的视频编辑软件,即ImageMagick和ffmpeg。本文将言简意赅的介绍怎样一行命令实现——视频截取、视频中的帧图片提取、短视频转换为gif、多张图片合成gif、gif图片压缩这5个技巧。

首先,我下载了最新一集的一拳超人(第二季第十集):

至于是怎么下载的,现在这不是重点。

在linux环境下,可以看见这个视频的名字--***ONEPUNCH*******

开始操作了!

1. 怎样一行命令剪切视频中的某一片段?

输入下行命令,将截取该集动画片中的19分55秒——20分00秒总共5s的视频(Ps: 我发现第二季一拳超人每集中精彩的打斗场面真是太少了,远远不如第一季,本来想剪辑海贼王的,可是海贼王最新几集更是没有打斗,而且真是PPT动画的感觉==不说了)。

ffmpeg -i \[HYSUB\]ONE\ PUNCH\MAN\[22\]\[GB_MP4\]\[1280X720\].mp4 -vcodec copy -acodec copy -ss 00:19:55 -to00:20:00 cutout5s.mp4 –y

-i:读取视频文件名

-vcodec copy表示使用跟原视频一样的视频编解码器。

-acodec copy表示使用跟原视频一样的音频编解码器。

-ss 00:19:55 -to00:20:00:从00:19:00开始剪切到00:20:00总共5s

cutout5s.mp4 –y:剪切出的视频命名为cutout5s.mp4,-y表示覆盖掉同名的文件(不加也行)

2. 怎样将视频安帧拆解为很多图片?

ffmpeg -i cutout5s.mp4 image%d.jpg

-i cutout5s.mp4 image%d.jpg:读取cutout5s.mp4,将其拆解为image*.jpg。

3. 怎样用这个cutout5s.mp4或者是很多图片合成制作一个gif动图?(这其实是两个问题)

ffmpeg -icutout5s.mp4 out.gif

或者是

convert -delay 10-loop 0 *.jpg out.gif

-delay 10:其中,120表示10*10ms=0.1s,每帧图片播放时间隔1.2s

-loop 0:其中,0表示无限循环此gif。

*.jpg表示当前目录默认排序下的所有jpg图片

out.gif表示最后生成的gif动图

4. 生成的gif太大了,好几十M或者十几M,怎样压缩?

mogrify -resize320x240 out.gif

-resize 640x480 out.gif:将out.gif(直接从视频转换后的大小为27M !)画幅大小调整为640*480。你也可以320 x240或者其他数值,看一下这两者的区别吧:

最后,让我们看看只懂技术不懂审美的小编合成的gif是怎样的:

(因为图片上传要求小于2M,该gif包含的图片帧数是100多张,然后这么模糊实在是。。。。。。情有可原=。=)

更多细节参考:

https://blog.csdn.net/huangxingli/article/details/46663143

https://www.jianshu.com/p/6b629dc305af

https://blog.csdn.net/tge7618291/article/details/7553807

喜欢的话,分享一下吧~^o^~  
上一篇下一篇

猜你喜欢

热点阅读