大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
作者:王亨 ,R语言中文社区专栏作者,跟着菜鸟一起一步步学习R语言,争做R语言高手。
个人公众号:跟着菜鸟一起学R语言(微信ID:learn_R)
最近发现一个特别有意思的包——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)
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。
☞ 推荐阅读 ☜
公众号后台回复关键字即可学习
回复 爬虫 爬虫三大案例实战
回复 Python 1小时破冰入门回复 数据挖掘 R语言入门及数据挖掘
回复 人工智能 三个月入门人工智能
回复 数据分析师 数据分析师成长之路
回复 机器学习 机器学习的商业应用
回复 数据科学 数据科学实战
回复 常用算法 常用数据挖掘算法
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190830.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...