导入png文件并在R中转换为animation(.mp4)

时间:2018-07-12 16:51:55

标签: r animation ffmpeg imagemagick rmagick

我正在尝试用R中的几个png文件创建一个简短的动画。我尝试了软件包magick,但仅当将它们保存到.gif时才有效。当我尝试另存为.mp4时,它将生成一个.mp4文件,但是一旦打开它,将仅显示第一张图像。

我的代码是

  library(magick)
  productPath <- ('/Users/abc/Desktop/products/')
  list <- list.files(productPath, '*.png')
  imagesPath <- paste0(productPath, list)
  images <- image_read(imagesPath)
  animation <- image_animate(images, fps = 20, loop = 1)
  image_write(animation, paste0(productPath, 'test.mp4'))

我发现还有一个名为animation的软件包,但我真的不知道如何使用该软件包导入png文件。有什么办法吗?与任何一个包应该都很好。谢谢!

3 个答案:

答案 0 :(得分:1)

您可以这样做(假设图像在当前目录中):

library(animation)
imgs <- list.files(pattern="*.png")
saveVideo({
  for(img in imgs){
    im <- magick::image_read(img)
    plot(as.raster(im))
  }  
})

默认情况下,此创建animation.mp4

答案 1 :(得分:1)

所选最佳答案要求您首先安装ffmpeg。如果您还没有这样做,并且由于管理权限有限,那么您就无法在PC上安装其他程序,则可以尝试使用av软件包。

此方法无需安装任何其他程序。

av::av_encode_video(list.files(productPath, '*.png'), framerate = 30,
                    output = 'test.mp4')

答案 2 :(得分:0)

import AudioKit