问题标签 [xuggle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
11017 浏览

java - 使用 xuggler 从一组图像创建视频

我一直在到处寻找解决方案!在本网站和其他网站上。我发现了一些有趣的东西,但它们并没有解决我的问题。我会解释的。

我有一个视频,我用 xuggler 对它的每一帧进行分级。当我得到所有帧时,我会使用颜色算法对它​​们进行编辑。另外,我将音频存储在 mp3 文件中。

现在我需要从所有帧创建一个视频,这个视频当然应该具有与帧速率 e 持续时间相同的特征。之后我必须合并音频。

我已经完成了第一部分,但我不知道如何创建具有相同特征的视频。我正在关注这段代码:

http://www.javacodegeeks.com/2011/02/xuggler-tutorial-frames-capture-video.html

无法使用 Xuggler 对视频进行编码

但它拍摄快照并使用了一个奇怪的循环:

我不知道如何设置正确的特性。这应该很容易,因为我对视频了如指掌!大小、帧率和帧数。

我的代码:

有人能帮帮我吗?

0 投票
2 回答
1251 浏览

java - Xuggle 在 ubuntu x64 上构建失败?

GIT 中心下载源代码后,我按照Xuggle YouTube Video的说明设置了环境变量

然后我简单地通过命令启动了ant测试

最后给了我以下错误输出..

0 投票
1 回答
575 浏览

java - Java 是否足够快来进行实时屏幕共享?

在过去的几个月里,我和一个开发人员一直在开发一个屏幕共享小程序,它可以流式传输到像 Wowza 或 Red5 这样的媒体服务器,但无论我们做什么,我们都有大约 5 秒的延迟,这对于直播来说太长了人们相互交流的应用程序。我们尝试过 xuggle、不同的编码器、不同的播放器、不同的网络、不同的媒体服务器,甚至在本地流式传输,都存在显着的延迟。

所以,我开始怀疑……</p>

Java 是否足够快来进行实时屏幕共享?

我见过很多用 Java 编写的屏幕录制小程序,但没有一个是实时流式传输的。现场完成的所有事情,例如 GoToMeeting,似乎都使用 C++。我在想也许是有原因的。

这不是压缩问题。使用 ScreenVideo,我们将一小时长的流压缩到大约 100 MB,并且我们有足够的带宽。处理器在进行压缩时也没有过载,但似乎花费了太多时间。我们从 BigBlueButton 中提取的一些代码中获得了最好的结果,但是延迟仍然很糟糕。

另一方面,流式传输网络摄像头既漂亮又活泼。几乎没有延迟。所以,问题出在小程序上。

我能想到的唯一其他想法是以某种方式用 Java 模拟网络摄像头。不确定这是否会更快。

想法?还是我应该放弃 Java 并在 C++ 中做到这一点?我不愿意这样做,因为那样我就必须为不同的平台创建不同的版本,但如果这是唯一的方法,那就是唯一的方法。

0 投票
1 回答
8644 浏览

java - Xuggler 支持哪些编解码器?

是的,我知道常见问题解答假装回答了这个问题,但事实并非如此。相反,它指示您从源代码构建项目(并且构建指令非常复杂)。那种打败了整个观点:)

让我们为世界上的每个人省去构建另一个开源项目的麻烦,以了解它是否真的解决了他们的问题。Xuggler 支持哪些编解码器?

0 投票
2 回答
310 浏览

java - 如何使用 xuggler 库制作可执行文件 java

我制作了一个可执行的 jar,用 eclipse 导出我的项目。
它在我的笔记本电脑上工作,但在另一个笔记本电脑上,它不起作用。我想因为xuggler没有安装在那个上。有没有办法让我的软件在其他笔记本电脑上运行?也许我应该以另一种方式制作可执行文件。感谢您的时间和建议。

0 投票
1 回答
1021 浏览

c - 为什么 fread() 在 Msys/MinGw 下不能工作(跳过字节)?

尝试在 Windows 下构建 Xuggler。Xuggler 是封装在 Java 中的核心原生代码函数,用于声音处理(包括 ffmpeg)。

我的 Windows 是 x64 Win 7 prof,但所有使用的库都是 32 位的。我在 MinGW/MSys 下运行构建过程,在 Msys shell 下使用以下脚本:

Ant 目标最后包含一些测试,这些测试给出了错误。错误如下

更新 1

测试代码如下:

虽然url_read代码如下:

不明白,什么情况下可以返回1042???可能会以某种方式在这里播放 64 位吗?

更新 2

我打印出使用的文件名,它是

路径是正确的,但以d:/not开头/d/

这可以在Msys下发挥作用吗?

更新 3

我将读取的字节与测试文件的真实内容进行了比较,发现 fread() 出于某种原因跳过了一些字节。还不知道哪些字节,可能这些是 CR/LF

更新 4

我猜与 CR/LF 无关。

原始字节是

读取字节是

这是 FLV 文件的开始。我不明白腐败的原理。

怎么能01 05 00 00变只15???

更新 5

文件打开完成如下

url_open() 函数如下:

0 投票
1 回答
1550 浏览

java - 我应该使用什么来构建 RTSP 服务器,应该是 vlcj 还是 xuggler?

我有一个计划用 java 开发 RTSP 流媒体服务器。现在我必须决定使用用于以 rtp 格式解码媒体和流数据的库。我正在研究用于视频解码和流媒体的 vlcj 和 xuggler。我对这些库的差异进行了一些研究,但我还不能做出决定。所以我想问你们我是否想建立一个提供以下功能的服务器。你觉得哪一个更好?1. 可以点播视频到多个用户 2. 可以接收 mms 格式的流并将其重新流式传输为 rtsp 格式

最初,我尝试使用 ffmpeg 和 ffserver,但存在音频不同步问题,因此我决定制作自己的服务器。使用 vlcj 的好方法是使用进程外,但我担心视频点播的性能。我想到了 xuggler,但我担心它会和我在 ffmpeg 中遇到同样的问题。

你能告诉我你的意见哪个适合这种情况吗?

0 投票
1 回答
525 浏览

java - Xuggler 的 IPacket 是如何与 FLV 标签或标签部分对应的?

FLV 格式规范在这里: http: //www.adobe.com/content/dam/Adobe/en/devnet/flv/pdfs/video_file_format_spec_v10.pdf

1) FLV body 由标签组成

2)每个标签由header和data组成

3) 数据可能是AUDIODATAVIDEODATA

4)AUDIODATA由描述符字节和音频帧组成。

我的问题是:IPacket使用 Xuggler 阅读 FLV 时有什么内容?

AUDIODATA目前我确实从我的代码中提取音频帧。我分析第一个字节,推断格式,切割其他数据,将其包装IPacket并发送给IStreamCoder解码器,解码器设置为推断格式。

但是我可以把这个委托给 Xuggler 吗?可能我可以创建IContainerFLV 格式并从中窥视数据包吗?

假设我InputStream通过IContainer. 这个流可以只包含 FLV 正文吗?它会正确提取音频数据包吗?

0 投票
2 回答
2256 浏览

video-processing - 尝试使用 H264 对 HTTP 实时流进行编码

我正在尝试对媒体文件进行编码以用于 HTTP Live Streaming,但到目前为止还没有太多运气。当我使用 ICodec.ID.CODEC_ID_MPEG2TS 或 ICodec.ID.CODEC_ID_MPEG4 对流编码进行编码时,但使用 Apple 的验证工具时出现错误:

错误:(-12971)MPEG2 解析器损坏流(程序 1,轨道 257)错误:(-12971)未能将段解析为 MPEG-2 TS 或 ES

如果我将它们保存为 .mp4 而不是 .ts,那么它们会在 Quicktime 中播放(但不是 .ts)

如果我使用 ICodec.ID.CODEC_ID_H264 我在编码时收到以下错误:

java.lang.RuntimeException: 无法打开流 com.xuggle.xuggler.IStream@-397916640[index:0;id:1;streamcoder:com.xuggle.xuggler.IStreamCoder@-397916528[codec=com.xuggle.xuggler. ICodec@-397916032[type=CODEC_TYPE_VIDEO;id=CODEC_ID_H264;name=libx264;];时基=1/25;帧率=0/0;像素类型=YUV420P;宽度=640;高度=360;];帧率: 0/0;时基:1/90000;方向:OUTBOUND;]:不允许操作

我对编码器有以下设置:

我只是想知道我是否做错了什么。我不太了解视频编码,因此在尝试编码为 H264 时可能只是忘记了一个简单的选项。

0 投票
2 回答
897 浏览

java - 视频缩略图 xuggle

我想从大约一半的时间点从视频中获取缩略图,我通过使用以下方法实现了这一点:

http://build.xuggle.com/view/Stable/job/xuggler_jdk5_stable/ws/workingcopy/src/com/xuggle/mediatool/demos/DecodeAndCaptureFrames.java

但是我的解决方案非常慢,实际上它会在视频中循环播放。对于较大的文件,这不是一个聪明的解决方案。

IContainer.seekKeyFrame 看起来对我的问题很有用。有人可以解释我如何为此目的使用 seekKeyFrame 吗?