使用脚本去抖视频


12

如何将视频去抖?

我尝试使用转码:

transcode  -J stabilize --mplayer_probe -i "input.MTS"

但这会导致段错误。

尝试使用ffmpeg过滤器:

ffmpeg -i "input.MTS" -vf vidstabdetect=shakiness=5:show=1 out.avi
ffmpeg -i "input.MTS" -vf deshake out.avi

但始终会出现错误“没有此类过滤器”。

我想为此创建一个简单的nautilus脚本。


转码不应出现段错误,请使用选项。参见附有教程链接的对askubuntu.com/questions/228841/…的答案。
塔卡特2014年

Answers:


20

当前,ffmpeg来自存储库的仅支持更简单的抖动过滤器,但不支持更好的vidstab过滤器。

您可以通过多种方法获得vidstab支持:编译或使用PPA。


编译中

如果您还想自定义您ffmpeg的版本或使用最新版本,则这是最佳选择。

首先,您将必须编译libvidstab或使用libvidstab-dev软件包。当前,只有19.04 Disco Dingo和更高版本提供此软件包。或者,16.04 Xenial Xerus用户可以使用mc3man PPA中的libvidstab-dev软件包。

编译libvidstab:

$ sudo apt-get install build-essential cmake
$ mkdir ~/ffmpeg_sources ~/ffmpeg_build
$ cd ~/ffmpeg_sources
$ wget -O https://github.com/georgmartius/vid.stab/archive/master.zip
$ unzip master.zip
$ cd vid.stab-master
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=~/ffmpeg_build .
$ make
$ make install

现在遵循如何在Ubuntu上编译FFmpeg。当您进入ffmpeg配置步骤时,请添加--enable-libvidstab到配置选项列表中。


mc3man PPA

FFmpeg当前版本以及适用于16.04 Xenial Xerus的git PPA

sudo add-apt-repository ppa:mc3man/ffmpeg-test
sudo apt-get update
sudo apt-get install ffmpeg-static

现在运行ffmpeg2 (注意“ 2”)。


用法

请参阅vid.stab使用说明


另见


config构建ffmpeg的步骤对我失败ERROR: vidstab not found using pkg-config。我想念什么?
专家

另外,道格的PPA没有libvidstab-dev
专家

1
@guettli不应该。那是一个错字。感谢您指出。我编辑了答案。
llogan

对于所有阅读速度太快的人(例如我):您需要使用ffmpeg 2
guettli

似乎不适用于Ubuntu 17.04
wotanii

3

如上文所述,道格的PPA 截至2017年8月19日不支持Zesty(17.04)。随着17.10将于10月发布,16.04解决方案将越来越过时。Zesty用户的两种可能的解决方案:

  1. 更简单:只需使用静态版本https://www.johnvansickle.com/ffmpeg/
  2. 更多工作:vid.stab从github 安装(https://github.com/georgmartius/vid.stab阅读编译说明,非常简单),然后编译ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

因为我没有太多时间,所以我喜欢第一个解决方案,它可以完美地工作。

vidstab第一次通过仅可在1个核心上使用,但由于GoPro素材很多,因此如果我希望100%的系统负载,则可以同时处理4个视频。第二遍利用所有4个核心。

我的笔记本电脑i7-6820HK只能以约0.12倍的速度通过测试。所以它很慢,但是我不在乎结果是否会很好。


更新:我的头盔坐骑镜头似乎太摇晃,以至于晃动度10还不够。我不知道该怎么办,那是最大的...


1
deshake为头盔式GoPro自行车录像尝试了,但看起来几乎什么都没做。Deshake是的正式Ubuntu版本的一部分ffmpeg,也许有一些参数组合可以更好地工作,但是在网上阅读听起来vid.stab会更好。
卡萨巴·托斯

是的,vidstab更好,但是更复杂。
llogan

1

我想很多人(包括我在内)都发现了这个问题,试图将ffmpeg与过滤器一起使用。

这些关于编译的答案虽然很棒,但是很耗时,对某些人来说可能很困难。

如今,有一个简单的选项可以使用已由许多过滤器,编解码器等构建的Docker映像。

我个人使用了这张图片https://github.com/jrottenberg/ffmpeg

样品过滤器的使用非常简单:

docker run -v $PWD:/temp/ \
    jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf deshake \
    /temp/out.avi

以及vidstab过滤器:

# create vectors from input file
docker run -v $PWD:/temp/ jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=/temp/transform_vectors.trf -f null -

# process file using vectors from step 1
docker run -v $PWD:/temp/ jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf vidstabtransform=input=/temp/transform_vectors.trf:zoom=1:smoothing=30,unsharp=5:5:0.8:3:3:0.4 \
    /temp/out.avi

只需记住,创建的文件“ out.avi”将拥有root所有者,应该进行更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.