अनुसंधान के एक सप्ताह मैं अपने आप को बहुत ही सरल कोड ffmprg binaries का उपयोग कर लिखा है के बाद:
if(frameCount<628){
saveFrame("temp/anim_#####.png");
}else if(frameCount == 628){
println("Saving file!");
processBuilder = new ProcessBuilder("G:/.../ffmpg/bin/ffmpeg.exe", "-r", "60", "-i",
"C:/.../temp/anim_%05d.png", "-c:v", "libx264",
"-r", "30", "-pix_fmt", "yuv420p", "C:/.../test.mp4");
try {
process = processBuilder.start();
} catch (Exception e) {
e.printStackTrace();
}
}
बेशक आप फ़ाइलों और ffmpeg बाइनरी (
https://www.ffmpeg.org/download.html) करने के लिए पथ समायोजित करने की आवश्यकता के
। यह प्रसंस्करण संस्करण स्वतंत्र हो सकता है, क्योंकि यह केवल saveFrame का उपयोग करता है और वीडियो उत्पन्न करने के लिए बाहरी बाइनरी कॉल करता है। आनंद लें;)
'saveFrame()' निश्चित रूप से जाने का तरीका है। आप उन फ्रेम को क्विकटाइम प्रो <7.6 में ढेर कर सकते हैं यदि आपके पास यह है, जिसमें एक अच्छी ओपन इमेज अनुक्रम सुविधा है और फिर एक क्विकटाइम पर निर्यात करें, या आप उन्हें एक साथ सिलाई करने के लिए ffmpeg आज़मा सकते हैं। http://ffmpeg.org/ – ericsoco
मुझे एक महीने पहले एक ही समस्या थी और मैंने saveFrame() + क्विकटाइम तकनीक का भी उपयोग किया –
युप, यह मेरे लिए अच्छा काम करता है। 'saveFrame()' ffmpeg के साथ संयुक्त। – alnorth29