Я искал решение везде!На этом сайте и на других.Я нашел некоторые интересные вещи, но они не решили мою проблему.Я объясню это.
У меня есть одно видео, я оцениваю каждый кадр с помощью xuggler.Когда я получаю все кадры, я редактирую их все с помощью цветового алгоритма.Кроме того, я храню аудио в mp3-файле.
Теперь мне нужно создать видео из всех кадров, это видео, конечно, должно иметь те же характеристики, что и частота кадров e длительность.После этого мне нужно объединить аудио.
Я сделал первую часть, но я не знаю, как создать видео с такими же характеристиками.Я следую этому коду:
http://www.javacodegeeks.com/2011/02/xuggler-tutorial-frames-capture-video.html
Не могу кодировать видео с помощью Xuggler
Но он делает снимок и использует странныйцикл:
for (int index = 0; index < SECONDS_TO_RUN_FOR * FRAME_RATE; index++)
Я не могу понять, как установить правильную характеристику.Это должно быть легко, потому что я знаю все о видео!размер, частота кадров и количество кадров.
Мой код:
public static void main(String[] args) throws IOException {
final IMediaWriter writer = ToolFactory.makeWriter(outputFilename);
writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_MPEG4,
720, 304);
long nextFrameTime = 0;
final long frameRate =25/1000;
long startTime = System.nanoTime();
while (indexVideo<1597) {
BufferedImage videoImage = null;
try {
videoImage = getVideoImage();
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
writer.encodeVideo(0, videoImage,nextFrameTime,
TimeUnit.MILLISECONDS);
nextFrameTime += frameRate;
}
writer.close();
}
private static BufferedImage getVideoImage() throws IOException, AWTException {
File imgLoc = new File("D:/Gianfranco/Sample/"+indexVideo+".png");
BufferedImage img;
img = ImageIO.read(imgLoc);
System.out.println(imgLoc.getName());
indexVideo++;
return img;
}
Может кто-нибудь мне поможет?