[问题] 透过animation执行ffmpeg图片合成影片

楼主: bedroom0204 (khkh)   2016-04-14 13:46:13
[问题类型]:
程式咨询(我想用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
作者: andrew43 (讨厌有好心推文后删文者)   2016-04-14 14:03:00
ffmpeg编h.264可看 http://tinyurl.com/knjej65你saveVideo()很怪。第一个引数是在R画东西才对。另外,我认为不要一定要用animation package。我个人会用for loop创造一堆png file再呼叫ffmpeg。这样会单纯一点。其实animation package内部做的事情和你做出一堆png再调ffmpeg是一样的。如果你必须用该package,要请你给一个例子重现,不然不知道你卡在哪。
作者: celestialgod (天)   2016-04-14 14:41:00
怎么看都觉得你的程式问题很大...你如果只要用system去做就不用用到animation了saveVideo用的应该是R画出来的图如果要用外面的jpg,建议直接用system不然就要读入再用IMAGE重现至于你system出错的原因 应该是没有input output正常情况下直接呼叫ffmpeg是会跳错
楼主: bedroom0204 (khkh)   2016-04-15 14:18:00
我也是用for建立一堆图片,再把他们合成影片。但是自己没写过怎么操控外部档案(也没程式经验),所以system不太清楚怎么用,才想说用package。那我明白了,去研究一下怎么直接控制ffmpeg。谢谢回答!
作者: damody (天亮damody)   2016-04-16 09:49:00
这问题没有发挥到R的强项 用shell script就可以了

Links booklink

Contact Us: admin [ a t ] ucptt.com