使用AV包合并/连接视频并在R中保存声音



我试图合并/连接多个视频与声音顺序到一个视频中,仅使用R,(我不想在命令行中使用ffmpeg,因为项目的其余部分不需要它,我宁愿不带它在这个阶段)。

我的代码如下所示:

dir<-"C:/Users/Admin/Documents/r_programs/"
videos<-c(
paste0(dir,"video_1.mp4"),
paste0(dir,"video_2.mp4"),
paste0(dir,"video_3.mp4")
)
#encoding
av_encode_video(
videos,
output=paste0(dir,"output.mp4"),
framerate=30,
vfilter="null",
codec="libx264rgb",
audio=videos,
verbose=TRUE
)

它几乎工作,输出文件是一个mp4包含3个视频顺序一个接一个,但音频只来自3个视频中的第一个,然后它切断。

视频是什么并不重要。我用我正在使用的视频重新创建了这个问题,甚至从YouTube上随机下载了3个1080p 30fps的视频。

感谢任何帮助&提前谢谢你。

体验行为(只有一个音频源)正是它的设计方式。在C源代码中,您可以确定encode_video只接受audio的第一个条目,而忽略其他条目。总的来说,ropensci/avatm对音频的支持很差,因为它的主要关注点是将R图转换为视频。也许,你可以在GitHub上提交一个特性请求问题。

同时,为什么不直接使用base.system函数从R调用FFmpeg ?假设使用concatdemuxer +流复制(-c copy)具有相同的格式,这可能会大大加快您的过程。据我所知,av库不支持此功能。(如果格式不同,您需要使用concat过滤器,这也在上面的链接中解释。)

相关内容

  • 没有找到相关文章

最新更新