vid:完成视频的合成、合并、下载、裁剪、帧提取等日常任务的命令行工具

1 前言

今天,看到一款完成视频的合成、合并、下载、裁剪、帧提取等日常任务的命令行工具,就打算玩一玩,结果悲剧了,在这里记录一下。本篇博客的重点在测试和总结部分。

2 vid功能介绍

首先,奉上Github地址: https://github.com/achalddave/vid 。

vid是一个用于简单视频操作的命令行工具。

vid主要是一个包含一些moviepyffmpeg的包装器,带有一组简单易记的命令。

目前具有的功能:

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 <command> --help

3 安装

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

4 已知的问题

vid旨在以最小的努力进行简单的可视化。一些已知问题:

  • slideshow比使用ffmpeg创建视频要慢。这很可能是因为vid使用了[moviepy](https://github.com/Zulko/moviepy)FFMPEG_VideoWriter,将各个帧写入ffmpegstdin来创建视频。这使我们能够处理不同大小和格式的图像。例如,我没有找到一种让ffmpeg从jpg和png图像列表中创建视频的万无一失的方法。

  • 如果输入视频帧速率变化,hstack/vstack/grid有时会以几个空白帧结束。

5 测试

我的环境为:

  • Ubuntu 16.04
  • Python2.7(默认),Python3.5

能安装成功,但是运行报错,赶紧找原因,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)
  • Ubuntu软件中心消失

这时候啥心情都没了,我的电脑配置了很多东西,有的软件也受到了影响,又懒得重装系统,只好硬着头皮找解决办法。

最后,把pyhon3恢复为python3.5,使用以下命令删除楷体就恢复系统默认字体了,瞬间神清气爽,整个世界都美好了!

sudo apt-get remove fonts-arphic-ukai
sudo apt-get remove fonts-arphic-uming

6 总结

通过这个教训,发现自己的缺点,做事太鲁莽,不考虑后果。

不要在自己的主用机上尝试新事物,最好有一台备用机,不用担心破坏环境。

在写文档时,一定要说明依赖的软硬件环境。

不要轻易改变系统依赖的版本,如果必须,那就在虚拟环境中操作,比如Virtualenv,接下来学习下这个的使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值