问题标签 [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.
java - 使用 xuggler 从一组图像创建视频
我一直在到处寻找解决方案!在本网站和其他网站上。我发现了一些有趣的东西,但它们并没有解决我的问题。我会解释的。
我有一个视频,我用 xuggler 对它的每一帧进行分级。当我得到所有帧时,我会使用颜色算法对它们进行编辑。另外,我将音频存储在 mp3 文件中。
现在我需要从所有帧创建一个视频,这个视频当然应该具有与帧速率 e 持续时间相同的特征。之后我必须合并音频。
我已经完成了第一部分,但我不知道如何创建具有相同特征的视频。我正在关注这段代码:
http://www.javacodegeeks.com/2011/02/xuggler-tutorial-frames-capture-video.html
但它拍摄快照并使用了一个奇怪的循环:
我不知道如何设置正确的特性。这应该很容易,因为我对视频了如指掌!大小、帧率和帧数。
我的代码:
有人能帮帮我吗?
java - Java 是否足够快来进行实时屏幕共享?
在过去的几个月里,我和一个开发人员一直在开发一个屏幕共享小程序,它可以流式传输到像 Wowza 或 Red5 这样的媒体服务器,但无论我们做什么,我们都有大约 5 秒的延迟,这对于直播来说太长了人们相互交流的应用程序。我们尝试过 xuggle、不同的编码器、不同的播放器、不同的网络、不同的媒体服务器,甚至在本地流式传输,都存在显着的延迟。
所以,我开始怀疑……</p>
Java 是否足够快来进行实时屏幕共享?
我见过很多用 Java 编写的屏幕录制小程序,但没有一个是实时流式传输的。现场完成的所有事情,例如 GoToMeeting,似乎都使用 C++。我在想也许是有原因的。
这不是压缩问题。使用 ScreenVideo,我们将一小时长的流压缩到大约 100 MB,并且我们有足够的带宽。处理器在进行压缩时也没有过载,但似乎花费了太多时间。我们从 BigBlueButton 中提取的一些代码中获得了最好的结果,但是延迟仍然很糟糕。
另一方面,流式传输网络摄像头既漂亮又活泼。几乎没有延迟。所以,问题出在小程序上。
我能想到的唯一其他想法是以某种方式用 Java 模拟网络摄像头。不确定这是否会更快。
想法?还是我应该放弃 Java 并在 C++ 中做到这一点?我不愿意这样做,因为那样我就必须为不同的平台创建不同的版本,但如果这是唯一的方法,那就是唯一的方法。
java - Xuggler 支持哪些编解码器?
是的,我知道常见问题解答假装回答了这个问题,但事实并非如此。相反,它指示您从源代码构建项目(并且构建指令非常复杂)。那种打败了整个观点:)
让我们为世界上的每个人省去构建另一个开源项目的麻烦,以了解它是否真的解决了他们的问题。Xuggler 支持哪些编解码器?
java - 如何使用 xuggler 库制作可执行文件 java
我制作了一个可执行的 jar,用 eclipse 导出我的项目。
它在我的笔记本电脑上工作,但在另一个笔记本电脑上,它不起作用。我想因为xuggler
没有安装在那个上。有没有办法让我的软件在其他笔记本电脑上运行?也许我应该以另一种方式制作可执行文件。感谢您的时间和建议。
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() 函数如下:
java - 我应该使用什么来构建 RTSP 服务器,应该是 vlcj 还是 xuggler?
我有一个计划用 java 开发 RTSP 流媒体服务器。现在我必须决定使用用于以 rtp 格式解码媒体和流数据的库。我正在研究用于视频解码和流媒体的 vlcj 和 xuggler。我对这些库的差异进行了一些研究,但我还不能做出决定。所以我想问你们我是否想建立一个提供以下功能的服务器。你觉得哪一个更好?1. 可以点播视频到多个用户 2. 可以接收 mms 格式的流并将其重新流式传输为 rtsp 格式
最初,我尝试使用 ffmpeg 和 ffserver,但存在音频不同步问题,因此我决定制作自己的服务器。使用 vlcj 的好方法是使用进程外,但我担心视频点播的性能。我想到了 xuggler,但我担心它会和我在 ffmpeg 中遇到同样的问题。
你能告诉我你的意见哪个适合这种情况吗?
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) 数据可能是AUDIODATA
或VIDEODATA
4)AUDIODATA
由描述符字节和音频帧组成。
我的问题是:IPacket
使用 Xuggler 阅读 FLV 时有什么内容?
AUDIODATA
目前我确实从我的代码中提取音频帧。我分析第一个字节,推断格式,切割其他数据,将其包装IPacket
并发送给IStreamCoder
解码器,解码器设置为推断格式。
但是我可以把这个委托给 Xuggler 吗?可能我可以创建IContainer
FLV 格式并从中窥视数据包吗?
假设我InputStream
通过IContainer
. 这个流可以只包含 FLV 正文吗?它会正确提取音频数据包吗?
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 时可能只是忘记了一个简单的选项。
java - 视频缩略图 xuggle
我想从大约一半的时间点从视频中获取缩略图,我通过使用以下方法实现了这一点:
但是我的解决方案非常慢,实际上它会在视频中循环播放。对于较大的文件,这不是一个聪明的解决方案。
IContainer.seekKeyFrame 看起来对我的问题很有用。有人可以解释我如何为此目的使用 seekKeyFrame 吗?