- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 mp3 文件和一张图片。我需要用 java 创建一个结合它们的视频。
我正在尝试用 xuggle 来做,但仍然没有结果。
任何人都可以给我任何建议吗?
最佳答案
最后,我找到了解决办法。
我使用了 Xuggle 示例中的代码片段。
我还解决了音频转码的问题。
我将在这里编写我的代码,因为我无法解释它为什么有效,但它就是有效。
public String make() throws IOException, InterruptedException {
BufferedImage s1 = genImage();
writer = ToolFactory.makeWriter("temp/" + sermon.getFile().getName() + ".flv");
String filename = sermon.getFile().getAbsolutePath();
IContainer container = IContainer.make();
if (container.open(filename, IContainer.Type.READ, null) < 0) {
throw new IllegalArgumentException("could not open file: " + filename);
}
int numStreams = container.getNumStreams();
int audioStreamId = -1;
IStreamCoder audioCoder = null;
for (int i = 0; i < numStreams; i++) {
IStream stream = container.getStream(i);
IStreamCoder coder = stream.getStreamCoder();
if (coder.getCodecType() == ICodec.Type.CODEC_TYPE_AUDIO) {
audioStreamId = i;
audioCoder = coder;
break;
}
}
if (audioStreamId == -1) {
throw new RuntimeException("could not find audio stream in container: " + filename);
}
if (audioCoder.open() < 0) {
throw new RuntimeException("could not open audio decoder for container: " + filename);
}
writer.addAudioStream(0, 0, audioCoder.getChannels(), audioCoder.getSampleRate());
writer.addVideoStream(1, 1, width, height);
IPacket packet = IPacket.make();
int n = 0;
while (container.readNextPacket(packet) >= 0) {
n++;
if (packet.getStreamIndex() == audioStreamId) {
IAudioSamples samples = IAudioSamples.make(2048, audioCoder.getChannels());
int offset = 0;
while (offset < packet.getSize()) {
try {
int bytesDecoded = audioCoder.decodeAudio(samples, packet, offset);
if (bytesDecoded < 0) {
//throw new RuntimeException("got error decoding audio in: " + filename);
break;
}
offset += bytesDecoded;
if (samples.isComplete()) {
if (n % 1000 == 0) {
writer.flush();
System.out.println(n);
System.gc();
}
writer.encodeAudio(0, samples);
}
} catch (Exception e) {
System.out.println(e);
}
}
} else {
do {
} while (false);
}
}
for (int i = 0; i < container.getDuration() / 1000000; i++) {
writer.encodeVideo(1, s1, i, TimeUnit.SECONDS);
}
writer.close();
if (audioCoder != null) {
audioCoder.close();
audioCoder = null;
}
if (container != null) {
container.close();
container = null;
}
return "temp/" + sermon.getFile().getName() + ".flv";
}
谢谢,祝你好运。
关于java - Xuggle 将音频与生成的音频相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8848193/
所以如果我运行: ffmpeg -t 10 -re -i "rtmp://170.93.143.150/rtplive/ app=rtplive/ playpath=e000990f025f00750
我最近从 this link 下载了 Xuggler 教程:帧捕获和视频创建 的代码。 ,我已经在我的项目中添加了运行此代码所需的所有 .jar 文件,但是,当我运行此代码时,出现错误: 这是我的代码
如何使用 xuggle 和 java 将图像数组编码到电影中?我希望帧率为 30 fps。我愿意使用 xuggle 之外的其他框架,但我相信 xuggle 是最简单的。可能是一个新手问题,但无论如何谢
我有一个 mp3 文件和一张图片。我需要用 java 创建一个结合它们的视频。 我正在尝试用 xuggle 来做,但仍然没有结果。 任何人都可以给我任何建议吗? 最佳答案 最后,我找到了解决办法。 我
我正在开发一个将 Hadoop 的 MapReduce 框架与 Xuggle 集成的程序。为此,我正在实现一个 IURLProtocolHandlerFactory 类,该类可读取和写入内存中的 Ha
我从一个星期开始就在使用 xuggle,我写了一个方法来获得一个视频帧,但如果视频很长,这种方法会花费太多时间: public static void getFrameBySec(IContainer
我有这段代码: import com.xuggle.mediatool.IMediaWriter; import com.xuggle.mediatool.ToolFactory; import co
我正在尝试在我的 Android 应用程序中使用 Xuggle 的库。 我已将所有 jar 文件添加到我的应用程序中。当我使用 xuggle 函数时,我在导入所需的 xuggle 包后没有收到任何警告
本文整理了Java中org.openimaj.video.xuggle.XuggleVideo类的一些代码示例,展示了XuggleVideo类的具体用法。这些代码示例主要来源于Github/Stack
我读到了 xuggle图书馆 我试图让 xuggle 库作为单个 jar 文件工作,而无需任何外部使用任何 dll 文件或环境变量 我阅读了安装 xuggler 时出现的所有错误并尝试了所有错误,但仍
我对使用 java 进行图像捕获还很陌生。Xuggle 或 ffmpeg 哪个更好、更容易实现帧捕获和制作具有音频和视频的视频。我看过 xuggle 和 ffmpeg,但无法从两者中获得像样的教程。任
我正在用 Java 编写截屏应用程序。我决定使用 Xuggle 来完成它,并按照 xuggle wiki 上的安装说明进行操作。 我用 %XUGGLE_HOME%\bin 和 %XUGGLE_HOME
我发现了关于 Xuggle昨天让我首先说这是一件了不起的事情。我浏览了所有video和 text教程。 我的第一个问题是以编程方式记录计算机桌面,我解决了这个 this way 。 现在我需要一些不同
我最近开始使用 Xuggle 将各种格式的视频文件转换为相应的 FLV(通过 jwplayer 在我们的网站上播放)。我使用的代码非常简单;基本上他们为基本视频转换教程展示的内容: IMediaRea
我创建了一个基于 Xuggle 的服务器系统,将传入的文件编码为 H264 并对其进行分段。但是,在 Quicktime 中播放视频时,它几乎可以正常工作(有时音频会出现小问题),但是当从一个质量流更
一千分钟,我试图找到一种方法来流式传输多个视频并将它们组合成一个输出。我想用 ffmpeg 或 xuggler 用 ffmpeg cmd 做到这一点。 VirtualDub 和 avis 无法满足我的
我可以通过 xuggle 播放视频,但是当我启动我的程序时,视频在单独的 JFrame 中打开! ,我想在我自己的 Jframe 或 JPanel 中以全屏显示模式实现此播放器,那么我该怎么做?? 我
我正在尝试使用 Xuggle 从本地读取 mov 文件。这给了我以下错误: 30-mag-2011 15.56.55 com.xuggle.ferry.NativeLogger log GRAVE:
当我通过 JWS 启动我的应用程序时出现以下异常。但是当它作为一个没有 JNLP 的独立 Java 应用程序启动时它工作得很好。 Exception in thread "AWT-EventQueu
我有一个应用程序可以捕获屏幕视频并保存到文件中。我让用户能够选择 480、720 和“全屏”视频尺寸。 480会在屏幕上的一个小盒子里录制,720会在一个更大的盒子里录制,当然,“全屏”会在更大的盒子
我是一名优秀的程序员,十分优秀!