简体   繁体   English

如何使Java JMF使用多个图像制作视频?

[英]How to make java JMF work to make a video using multiple images?

I'm trying to use JMF to make a video using multiple jpg images. 我正在尝试使用JMF使用多个jpg图像制作视频。 These images are also saved using ImageIO of Java itself. 这些图像也使用Java本身的ImageIO保存。 Unfortunately, I cannot find a code sample or a working code/class to accomplish make the video using JMF. 不幸的是,我找不到代码样本或有效的代码/类来完成使用JMF制作视频的过程。

There was a JpegImagesToMovie.java class here: http://www.oracle.com/technetwork/java/javase/documentation/jpegimagestomovie-176885.html but that link seems broken. 这里有一个JpegImagesToMovie.java类: http : //www.oracle.com/technetwork/java/javase/documentation/jpegimagestomovie-176885.html,但是该链接似乎已断开。

Can someone please post a working code, or tell me some other way of making videos with java and a different class? 有人可以发布有效的代码,还是告诉我使用Java和其他类制作视频的其他方法?

I think a working code on this page might help others like me in future. 我认为此页面上的有效代码将来可能会对像我这样的其他人有所帮助。

BTW, I also tried to use ffmpeg to compile the video, but that says similar to: 顺便说一句,我也尝试使用ffmpeg来编译视频,但这类似于:

image2 codec not found 

When we use java ImageIO to make jpg images, are they not compatible with ffmpeg codecs? 当我们使用java ImageIO制作jpg图像时,它们是否与ffmpeg编解码器不兼容?

java command: Java命令:

ImageIO.write(capture, "jpg", new File( uploadPath, filename));

This is the ffmpeg error: 这是ffmpeg错误:

ffmpeg.exe -f image2 -i pic\s%d.jpeg -vcodec mpeg2video vid\video.mpg
FFmpeg version SVN-r7760, Copyright (c) 2000-2006 Fabrice Bellard, et al.
  configuration:  --enable-memalign-hack --enable-gpl --cpu=i686 --enable-swscaler --enable-pthreads --enable-avisynth --enable-mp3lame --enable-xvid --enable-x264 --enable-libnut --enable-libogg --enable-vorbis --enable-libtheora --enable-faad --enable-faac --enable-libgsm --enable-dts --enable-a52 --enable-amr_nb --enable-amr_wb 
  libavutil version: 49.2.0
  libavcodec version: 51.29.0
  libavformat version: 51.8.0
  built on Jan 29 2007 19:58:47, gcc: 3.4.6
[image2 @ 00931554]Could not find codec parameters (Video: mjpeg)
pic\sd.jpeg: could not find codec parameters

Looks like this command works using ffmpeg: 看起来此命令可以使用ffmpeg进行工作:

ffmpeg -f image2 -i img%d.jpg a.avi

Just 1 more question. 再问1个问题。 I added the command to my java program like: 我将命令添加到我的java程序中,例如:

Runtime.getRuntime().exec("ffmpegp.exe -f image2 -i pic\\s%d.jpg vid\\video.avi");

Which is creating the video! 哪个正在创建视频! Is there a way to "track" when video creation is complete, so that a message on java GUI can be shown, like, "video made" etc. 视频创建完成后,是否有办法“跟踪”,以便可以在Java GUI上显示消息,例如“视频制作”等。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM