此av非彼”AV”

此av非彼”AV”作者:王亨 ,R语言中文社区专栏作者,跟着菜鸟一起一步步学习R语言,争做R语言高手。个人公众号:跟着菜鸟一起学R语言(微信ID:learn_R) 最近发现一个特别有意思的…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

640?wx_fmt=gif

作者:王亨 ,R语言中文社区专栏作者,跟着菜鸟一起一步步学习R语言,争做R语言高手。

个人公众号:跟着菜鸟一起学R语言(微信ID:learn_R) 

640?wx_fmt=gif

最近发现一个特别有意思的包——av;

为什么有意思,首先名字有意思吧,其次这个包可以捕获图像,添加背景音乐,生成高质量的视频文件。

首先来看看该包的一个demo效果


感觉如何,反正我完全被这背景音乐吸引住了。很多时候,我们需要一种将分析结果的图片保存成GIF,可以动态显示数据变化,av不仅可以将结果报存GIF格式,还可以报存为视频格式,是不是很牛逼。

一般常用的包就是gganimate,它有很多很好的学习例子。但是到目前为止,这些软件包必须支持外部软件(例如ffmpeg命令行程序)才能生成视频。这个过程效率低且容易出错。av包使用了与FFmpeg相同的库。该扩展包作者的愿景是在未来的版本中,添加屏幕捕获和读取原始视频帧和音频样本等内容,以便在R中进行分析。

目前,av包主要的函数有两个,av_encode_video()函数和av_capture_graphics()函数。

av_encode_video()函数将一组图像转换为具有自定义容器格式,编解码器,fps和过滤器的视频文件。 视频格式可以是mp4,mkv,flv等,也可以是gif格式。 Av支持所有流行的编解码器和复用器。

如下代码就可以轻轻松松的将五张图保存成gif格式。

png("input%03d.png", width = 1280, height = 720, res = 108)for(i in 1:10){ print(ggplot2::qplot(rnorm(100))) } dev.off() png_files <- sprintf("input%03d.png", 1:5) av::av_encode_video(png_files, 'output.', framerate = 3)

640?wx_fmt=gif

av_capture_graphics()可以自动打开和关闭图形设备,然后对视频进行编码:

最新版本的gganimate软件包已经内置支持使用av_renderer()输出函数使用av渲染视频。 它尚未在CRAN上,因此需要从GitHub安装:

# 安装gganimate devtools::install_github("thomasp85/gganimate", "thomasp85/transformr")

AV还允许添加自定义视频过滤器链。 例如,这将使用与上面相同的动画,然后否定颜色,并将橙色淡入效果应用于前15帧。过滤器可能会影响视频的帧数和最终帧速率。 下面是我们之前的相同示例,但是现在我们添加了一个vfilter,它通过插入中间帧将视频的帧率从1增加到10,从而使帧之间的过渡更平滑。

p <- ggplot(airquality, aes(Day, Temp)) +  geom_line(size = 2, colour = 'steelblue') +  transition_states(Month, 4, 1) +  shadow_mark(size = 1, colour = 'grey')# Render and show the video df <- animate(p, renderer = av_renderer('animation.mp4'),              width = 1280, height = 720, res = 104, fps = 25) myrenderer <- av_renderer('animation.mp4',                          vfilter = 'negate=1, fade=in:0:15:color=orange') df <- animate(p, renderer = myrenderer,              width = 1280, height = 720, res = 104, fps = 25) utils::browseURL('animation.mp4')


当然,这个包也可以用在日常的生活中,它可以快速的把生活照片做成一个简短的小视频,添加一个好听的背景音乐。

library(av) png_files<-dir(paste0(getwd(),"/AV")) png_files<-file.path(paste0(getwd(),"/AV/", png_files)) av_encode_video(png_files, 'output.mp4', framerate = 0.4,audio = "music.mp3")


怎么样,是不是很有趣,有了av包,图片不仅可以导出保存为gif格式,还可以保存为视频格式,如果对ffmpeg了解的话,可以导出效果更好的视频,如果插到PPT中汇报,那效果也是棒棒的

如果想了解av,点击阅读原文即可访问GitHub。


☞ 推荐阅读 

1.R语言| 使用REmap绘制超炫酷的地图

2.案例 | 通过R对照片进行情绪分析

3.我把我用R写的第一个爬虫就献给了国家

4.R | 对亚马逊新总部可能位置进行可视化

5.基于Web日志挖掘的个性化推荐系统(附源码)

640?wx_fmt=jpeg

公众号后台回复关键字即可学习

回复 爬虫            爬虫三大案例实战  
回复 
Python       1小时破冰入门

回复 数据挖掘     R语言入门及数据挖掘
回复 
人工智能     三个月入门人工智能
回复 数据分析师  数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190830.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • SELinux深入理解

    SELinux深入理解

    2021年10月27日
  • python爬虫入门教程(二):开始一个简单的爬虫

    python爬虫入门教程(二):开始一个简单的爬虫python爬虫入门教程,介绍编写一个简单爬虫的过程。

  • idea激活激活码【在线破解激活】

    idea激活激活码【在线破解激活】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 垂直同步、三重缓冲、freesync

    垂直同步、三重缓冲、freesync一、垂直同步60Hz显示器,开启垂直同步后,就会锁60了;作用:1、解决画面撕裂现象,不会出现缓冲没画完被复写的情况;2、解决错帧现象;游戏更流畅;3、强制每帧间隔完全一样,这样因为帧生成时间不平滑导致的不流畅也会解决弊端:鼠标反馈,移动鼠标,电脑收到消息把移动鼠标输出给显卡,显卡收到后把鼠标移动画面输出给显示器,所有请求不会被延后,延迟只是电路延迟。但开启垂直同步,显卡绘制完后缓冲后,显示器还没有显示器完前缓冲,显卡等着,鼠标移动指令和显卡一起等着,直到显示…

  • flatMap示例

    flatMap示例flatMap示例什么是flatMap()回顾下面的数据结构,#Stream<String[]>#Stream<Stream<String>>#String[][][[1,2],[3,4],[5,6]]在Java8中,我们可以使用flatMap将上述数据结构转化为一下结构#Stream<String>#String[][1,2,3,4,5,6]为什么要平流处理包含超过一个级别的流,例

  • listagg 函数[通俗易懂]

    listagg 函数[通俗易懂]listagg函数–oracle11grelease2转载:http://xpchild.blog.163.com/blog/static/10180985920108485721969/本文描述了在oracle11grelease2版本中新增的listagg函数,listagg是一个实现字符串聚合的oracle内建函数。作为一种普遍的技术,网络上也有多种实现字符串聚合的方…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号