作者bedroom0204 (khkh)
看板R_Language
标题[问题] 透过animation执行ffmpeg图片合成影片
时间Thu Apr 14 13:46:13 2016
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
新手(没写过程式,R 是我的第一次)
[问题叙述]:
我试图透过ffmpeg将图片组合成影片,
如果不经过R,直接在ffmpeg输入:
ffmpeg -r 25 -f image2 -i "D:\new\test1(%d).jpg" -vcodec libx264
video2.mp4
可以成功合并成影片档。
如果要在R里,可能就必须透过animation这个package,
oopts = ani.options(interval = 0.04, ani.width=1920, ani.height=1020,
ffmpeg = "C:/ffmpeg-20160407-git-0c94906-win32-static/bin/ffmpeg.exe")
saveVideo(
for(k in 1:1000)"D:\\MRTTT\\new\\test1(%d).jpg",
video.name ="D:\\MRTTT\\new\\newvid.mp4",
ffmpeg = ani.options("ffmpeg"),
other.opts = "-b 3000k")
但是,结果只能转出白色画面没秒数影片档,
我判断是读取图片的程式码写错(
上述黄色处)。
另外也想要改成libx264的方式编码,档案比较小,
也不知道怎麽改比较好。
如果说用
system()开启,如下:
system("C:\\ffmpeg-20160407-git-0c94906-win32-static\\bin\\ffmpeg.exe")
又会出现Warning message:
running command
'C:\Users\KH\Desktop\ffmpeg-20160407-git-0c94906-win32-static\bin\ffmpeg.exe'
had status 1
也不知道是甚麽原因。
麻烦解答了。
[程式范例]:
如上
[关键字]:
ffmpeg, animation
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.56.90
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1460612779.A.62B.html
2F:→ andrew43: 你saveVideo()很怪。第一个引数是在R画东西才对。 04/14 14:05
3F:→ andrew43: 另外,我认为不要一定要用animation package。 04/14 14:05
4F:→ andrew43: 我个人会用for loop创造一堆png file再呼叫ffmpeg。 04/14 14:06
5F:→ andrew43: 这样会单纯一点。 04/14 14:07
6F:→ andrew43: 其实animation package内部做的事情和你做出一堆png再 04/14 14:11
7F:→ andrew43: 调ffmpeg是一样的。如果你必须用该package,要请你 04/14 14:12
8F:→ andrew43: 给一个例子重现,不然不知道你卡在哪。 04/14 14:13
9F:→ celestialgod: 怎麽看都觉得你的程式问题很大... 04/14 14:41
10F:→ celestialgod: 你如果只要用system去做就不用用到animation了 04/14 14:42
11F:→ celestialgod: saveVideo用的应该是R画出来的图 04/14 14:43
12F:→ celestialgod: 如果要用外面的jpg,建议直接用system 04/14 14:44
13F:→ celestialgod: 不然就要读入再用IMAGE重现 04/14 14:44
14F:→ celestialgod: 至於你system出错的原因 应该是没有input output 04/14 14:45
15F:→ celestialgod: 正常情况下直接呼叫ffmpeg是会跳错 04/14 14:45
16F:→ bedroom0204: 我也是用for建立一堆图片,再把他们合成影片。但是自 04/15 14:18
17F:→ bedroom0204: 己没写过怎麽操控外部档案(也没程式经验),所以syste 04/15 14:18
18F:→ bedroom0204: m不太清楚怎麽用,才想说用package。那我明白了,去 04/15 14:18
19F:→ bedroom0204: 研究一下怎麽直接控制ffmpeg。 04/15 14:18
20F:→ bedroom0204: 谢谢回答! 04/15 14:18
21F:→ damody: 这问题没有发挥到R的强项 用shell script就可以了 04/16 09:49