今天,看到一款完成视频的合成、合并、下载、裁剪、帧提取等日常任务的命令行工具,就打算玩一玩,结果悲剧了,在这里记录一下。本篇博客的重点在测试和总结部分。
首先,奉上Github地址: https://github.com/achalddave/vid 。
vid
是一个用于简单视频操作的命令行工具。
vid
主要是一个包含一些moviepy
和ffmpeg
的包装器,带有一组简单易记的命令。
目前具有的功能:
1.将一系列图像创建成视频
~ vid slideshow "frames/*.png" video.mp4
~ vid slideshow --fps 1 "frames/*.png" video_1fps.mp4
2.输出视频信息
~ vid info video.mp4
Path: video.mp4
Duration: 3.03
FPS: 30.0
Resolution: 1280x720
3.将多个视频合并为一个视频
# Combine videos horizontally
~ vid hstack video1.mp4 video2.mp4 output.mp4
# Combine videos vertically
~ vid vstack video1.mp4 video2.mp4 output.mp4
# Combine videos in a grid
~ vid grid --num-rows 2 video1.mp4 video2.mp4 video3.mp4 video4.mp4 \
output.mp4
4.下载视频并修剪到指定的开始/结束时间。使用youtube-dl。
# Download video, trim clip of 2 second duration starting at t=42s.
~ vid download 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' -s 42 -d 2
5.提取视频或视频列表中的帧。如果指定了多个视频,默认情况下会并行提取。
~ vid dump_frames video.mp4 ./video_frames
~ vid dump_frames --list list_of_videos.txt ./video_frames
有关详细信息,请使用命令vid
。
pip install 'git+https://github.com/achalddave/vid.git#egg=vid'
可能遇到的问题:
ERROR: moviepy 1.0.0 has requirement imageio<3.0,>=2.5, but you’ll have imageio 2.4.1 which is incompatible.
解决方法:
sudo pip install --upgrade imageio
vid旨在以最小的努力进行简单的可视化。一些已知问题:
slideshow
比使用ffmpeg
创建视频要慢。这很可能是因为vid
使用了[moviepy](https://github.com/Zulko/moviepy)
的FFMPEG_VideoWriter
,将各个帧写入ffmpeg
的stdin
来创建视频。这使我们能够处理不同大小和格式的图像。例如,我没有找到一种让ffmpeg从jpg和png图像列表中创建视频的万无一失的方法。
如果输入视频帧速率变化,hstack
/vstack
/grid
有时会以几个空白帧结束。
我的环境为:
能安装成功,但是运行报错,赶紧找原因,setup.py中有以下代码:
classifiers=[
# Trove classifiers
# Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy'
],
表明vid
工具依赖于Python3.6以上的版本。
既然你要Python3.6,那我就升级喽,网上有很多教程,升级容易,但还是报莫名其妙的错误,主要是pip,最后解决了,vid也能运行了,但是环境被我搞坏了。
升级Python3.6后出现的问题:
ctrl+alt+t
打不开终端(terminal)这时候啥心情都没了,我的电脑配置了很多东西,有的软件也受到了影响,又懒得重装系统,只好硬着头皮找解决办法。
最后,把pyhon3恢复为python3.5,使用以下命令删除楷体就恢复系统默认字体了,瞬间神清气爽,整个世界都美好了!
sudo apt-get remove fonts-arphic-ukai
sudo apt-get remove fonts-arphic-uming
通过这个教训,发现自己的缺点,做事太鲁莽,不考虑后果。
不要在自己的主用机上尝试新事物,最好有一台备用机,不用担心破坏环境。
在写文档时,一定要说明依赖的软硬件环境。
不要轻易改变系统依赖的版本,如果必须,那就在虚拟环境中操作,比如Virtualenv,接下来学习下这个的使用。