如何在Java应用程序中传输实时视频?
我正在尝试找到流式传输Java应用程序中生成的实时视频的方法.该应用程序需要进行自身的屏幕截图,并将其编码到视频流中并发布流. . 到目前为止,我一直在使用 xuggler (FFMPEG顶部的Java库)来编码屏幕截图到视频文件中.这很棒. Xuggler声称能够通过RTMP传输实时视频,但我没有找到有关如何以编程方式执行此操作的任何文件. 有人知道如何从Xuggler编程以编程方式流式视频? 有人对我可以使用的其他图书馆有建议吗?我更喜欢通过RTP中的mpeg2中的视频流. 我确实找到了其他人在Xuggler论坛上问一个非常相似的问题在这里没有响应. 我已经研究了JMF,这不是其他原因. 解决方案 老实说,不要浪费您在JMF上的时间,您可以考虑提供死亡.这是您将如何使用H.264进行屏幕截图(感谢tyreus@gmail.com).如果代码不显示此处的粘贴: http://pastebin.com/sjhwj0nw import com.xugg
4 2023-11-18
编程技术问答社区
Java的视频处理库
我想从视频中提取帧并在其中应用一些过滤器,例如Gabor/Hough等.哪个Java库非常适合处理各种视频编码?我一直在看Gstreamer,JMF,Xuggler等.但是无法决定哪个是最好的.我还希望编辑框架并使用新框架制作视频. 解决方案 如果您想进行低级操作,例如提取框架和操纵它们,那么Xuggler将是最佳选择,因为API的适应性较低.它可以在FFMPEG上使用,因此可以处理所有类型的视频编码. 不要将JMF用于任何事物,它是旧的,过时的和越野车的 - GSTREAMER很好,但是API更适合播放视频而不是操纵框架. 其他解决方案 您可以尝试如下的边缘检测示例所示,加载视频并实时处理帧非常容易. 源代码: import static marvin.MarvinPluginCollection.*; public class SimpleVideoProcessing extends JFrame implements Runnable{
2 2023-11-18
编程技术问答社区
如何提取一个大视频文件的子部分
我想根据给定的开始和结束时间从大型视频文件中提取一小部分视频. 我的Internet搜索显示,许多人建议使用Xuggle来做到这一点,但是我不熟悉该库,其使用或如何使用它来实现我的目标.请帮助我. 解决方案 尝试阅读手册! -ss和-t将从ss开始,并复制为'-t'... ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png 在5秒内开始10秒
6 2023-11-18
编程技术问答社区
如何在Jpanel上播放mp4视频?
我正在使用Xuggle库在JPanel上播放MP4视频,但视频加载需要3秒.或者更多.您有一些建议如何以正确的方式在jpanel或jlabel上播放视频? 这是显示MP4视频的好方法吗? Videocodec是Xugle编解码器.这是有效的,但我有几秒钟的延迟. public void setVideoName(final String videoName) { imageAndVideoPanel.removeAll(); final VideoPanel videoPanel = new VideoPanel(); videoPanel.setPreferredSize(Const.Dimensions.VIDEO_SIZE); videoPanel.setMinimumSize(Const.Dimensions.VIDEO_SIZE); videoPanel.setMaximumSize(Const.Dimensions.VIDE
34 2023-11-18
编程技术问答社区
用xuggler从一组图像中创建视频
我一直在寻找解决方案!在这个网站和其他网站上. 我发现了一些有趣的东西,但是它们没有解决我的问题.我会解释一下. 我有一个视频,我会和Xuggler一起毕业.当我获得所有帧时,我会使用颜色算法编辑所有帧.另外,我将音频存储在mp3文件中. 现在,我需要从所有帧中创建一个视频,当然,该视频应具有与帧速率持续时间相同的特征.之后,我必须合并音频. 我已经完成了第一部分,但是我不知道如何创建具有相同特征的视频.我正在遵循此代码: /2011/02/xuggler-tutorial-frames-capture-video.html 无法与Xuggler编码视频 ,但它采用快照,并且使用一个奇怪的循环: for (int index = 0; index
4 2023-11-18
编程技术问答社区
java/xuggle-encode array of images into a movie
如何使用Xuggle和Java将图像数组编码到电影中?我希望这是30 fps.除了Xuggle,我愿意使用另一个框架,但我相信Xuggle最简单.可能是一个新手问题,但是谢谢! 解决方案 There is an example for this 在Xuggle Wiki上(Wayback Archive Link,因为它似乎已经死了)(显然,用数组替换为Balls).
4 2023-11-18
编程技术问答社区
Xuggler 无法转换 .webm 文件?
我正在尝试使用Xuggler将.MOV文件转换为.webm,该文件应在FFMPEG支持.WEBM文件中使用. 这是我的代码: IMediaReader reader = ToolFactory.makeReader("/home/user/vids/2.mov"); reader.addListener(ToolFactory.makeWriter("/home/user/vids/2.webm", reader)); while (reader.readPacket() == null); System.out.println( "Finished" ); 在运行此问题时,我会得到此错误: [main] ERROR org.ffmpeg - [libvorbis @ 0x8d7fafe0] Specified sample_fmt is not supported. [main] WARN com.xuggle.xuggler -
4 2023-11-18
编程技术问答社区
媒体流基础知识--HTTP 与 RTMP
我是媒体流媒体的新手,我有一些基本疑问要清除: 据我所知, HTTP流(例如Apache)和RTMP流(通过RED5)之间的差异是,流服务器提供缓冲和提前控制等诸如Seek等的缓冲.我对吗?/p> 我只能从RED5等RTMP服务器中流闪存视频吗?如果我必须流式传输不同的文件格式,我必须去http流媒体吗?我可以使用Xuggler之类的工具动态转码文件并根据RED5服务器的请求发送? 我提出了所有这些疑问 解决方案 让我有点冗长来清除细节. 1)什么是"流".通常,在视频流中,根据实时的框架交付框架.如果您有30分钟的视频,它将在30分钟内交付给用户. 有专门用于流媒体的特殊协议:RTSP(也许是今天的古代生活),RTMP,MJPEG,基于HTTP的协议家族(Apple,Able,Abobe,Microsoft)和其他一些封闭的供应商协议. > 2)什么是" http-streaming"或"伪流".如果您只是将文件放在HTTP服务器上,则用户可
4 2023-09-30
编程技术问答社区
XUGGLE ERROR: 线程 "main "中出现异常 java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
我正在尝试执行以下代码: import com.xuggle.mediatool.IMediaReader; import com.xuggle.mediatool.IMediaWriter; import com.xuggle.mediatool.ToolFactory; public class vidcon { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub IMediaReader reader = ToolFactory.makeReader("test.m4v"); IMediaWriter writer = ToolFactory.makeWriter("out.flv"); reader.addListener(writ
10 2023-09-04
编程技术问答社区
Xuggle和java库路径
我正在Java上编写屏幕截图应用程序. 我决定使用Xuggle进行此操作,然后跟随Xuggle Wiki上的安装说明. 我使用%xuggle_home%\ bin和%xuggle_home%\ lib设置路径环境.一切似乎还可以. 我将此应用程序作为RCP插件.我在" RCP-Mail"模板上尝试了它,并且插件正常工作,并且该视频的生成正确. 但是,当我决定在"真实"应用程序上使用它时,插件崩溃了,带有奇怪的错误消息: 开始捕获 2011-11-10 08:08:45,438 [thread-5] warn com.xuggle.ferry.jnilibraryloader-失败:图书馆的库加载:Xuggle-Xuggler;版本:3:绝对路径:c:\ program文件(x86)\ xuggle \ bin \ libxuggle-xuggler-3.dll;错误:java.lang.unsatisfiedlinkerror:c:\ program文件(x86)
10 2023-07-25
编程技术问答社区
无法加载库:xuggle;版本:5;使用POM
我正在尝试使用Xuggle,并且在尝试部署时,我会遇到以下错误,低于我的POM文件.希望有人能告诉我我缺少什么 13:55:34.965 [main] ERROR com.xuggle.ferry.JNILibraryLoader - Could not load library: xuggle; version: 5; Visit http://www.xuggle.com/xuggler/faq/ to find common solutions to this problem Exception in thread "main" java.lang.UnsatisfiedLinkError: no xuggle in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Sourc
36 2023-06-10
编程技术问答社区
使用xuggler从文件中读取视频时,抛出了 "EXCEPTION_ACCESS_VIOLATION"。
我正在编写Java代码以使用MP4格式输入视频文件,对其应用效果,然后将其保存到新文件中.代码应将给定的视频拆分为其帧并将其存储在数组中,以便各自使用它们来构建效果.该代码的这一部分由Xuggler处理,因此我很难确定出了什么问题. 问题是,甚至在阅读视频的一张图像之前,错误就会退缩,我不知道它是指的是什么,并且广泛的Google Google告诉我这与内存访问错误有关. 甚至怪异的部分是,即使它们都是MP4格式,并且都应以相同的方式行事. 我尝试了许多来自不同来源的MP4文件,其中一些文件似乎是随机的.我最感兴趣地应用效果的MP4是不起作用的MP4. 在以下代码中,我在各个点使用打印语句确定了导致错误的代码的一部分在具有可变名称介质的Imedialistener中的某个位置.侦听器本身由actionListener内部的行while(reader.readPacket()==null);调用,特别是在按下"子"按钮触发的部分中.这是唯一称为的地方. 我应该
10 2023-06-05
编程技术问答社区
如何使用xuggler写到outputStream中?
所以我试图将我的编码缓冲映像写入输出流,但我无法在流中获取任何数据...有人可以告诉我我在做什么错以及为什么我可以' t看到任何输出? 我希望,当我调用write.encodevideo方法时,它将视频编码到我的bytearrayoutputstream中...是否错误? ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); // video parameters final int videoStreamIndex = 0; final int videoStreamId = 0; final long frameRate = DEFAULT_TIME_UNIT.convert(15, MILLISECONDS); final int width = 512; final int height = 254; long nextFrameTime = 0; // create a medi
8 2023-05-15
编程技术问答社区
用Xuggler进行音频转换
我正在尝试将AAC/WAV/WMA音频文件转换为Java中的Xuggler. 不幸的是,我的质量损失很大.我的输入文件大小约为7MB,我的输出文件大小仅为1,5MB. 样本率设置为44100 Hz,是否有其他参数要设置? 谢谢您的回答. if (args.length
46 2023-03-31
编程技术问答社区
如何安装/配置Xuggle以避免出现不满意的链接错误?
我才刚刚开始Xuggle,然后将所有内容都下载到Eclipse中,然后将它们包括在参考的库中,但我做了一个非常简单的测试, package com.xuggle.xuggler.demos; import com.xuggle.xuggler.IContainer; public class getContainerInfo { public static void main (String [] args){ IContainer myContainer = IContainer.make(); } } 它会丢下一堆错误, 2011-06-12 16:26:52,142 [main] ERROR com.xuggle.ferry.JNILibraryLoader - Could not load library: xuggle-xuggler; version: 3; Visit http://www.xuggle.com/xuggler/faq/
20 2023-03-24
编程技术问答社区
我怎样才能用xuggle在java中读取实时网络流?(我可以用ffmpeg做,但不能用xuggle)
所以如果我运行: ffmpeg -t 10 -re -i "rtmp://170.93.143.150/rtplive/ app=rtplive/ playpath=e000990f025f0075004d823633235daa swfUrl=http://www.chart.state.md.us/video/mediaplayer/player.swf pageUrl=http://www.chart.state.md.us/video/video.asp?feed=e000990f025f0075004d823633235daa stop=5000 flashver=`LNX 11,2,202,262` live=true" test.flv -report 它给了我从该WebStream的5秒钟的视频快照,该视频被放入test.flv中. 现在,我想使用Xugle在Java中执行相同的操作 public IMediaReader grabStream(IMedia
12 2023-03-11
编程技术问答社区
java.lang.UnsatisfiedLinkError: java.library.path中没有xuggle-xuggler。
我正在使用Ubuntu 11.04和Eclipse.我成功地安装了Xuggler,我在FAQ中检查了环境变量和与Linux相关的所有内容: http://wiki.xuggle.comfrequyse_asked_questions#what.27s_up_with_java.lang.unsatistisfiedlinkerror.3f 我还根据他们的教程设置日食: 每当我尝试运行使用Xuggler的任何代码时,我都会收到以下错误: 2011-09-14 14:17:30,093 [main] ERROR com.xuggle.ferry.JNILibraryLoader - Could not load library: xuggle-xuggler; version: 3; Visit http://www.xuggle.com/xuggler/faq/ to find common solutions to this problem Exception in thre
96 2023-03-08
编程技术问答社区
xuggler视频编码的替代品,不需要安装?
我正在创建ScreenCast Java Web启动应用程序. 使用Xuggler编码视频需要: 在客户端系统上安装Xuggler - 很乏味. (或) 使用Xuggle -Xuggler.jar版本5.2或更高版本的大小约为35 MB Plus. - 这增加了应用程序加载所需的时间. 还有其他选择,不需要安装,罐子并不那么巨大. 解决方案 我尚未使用Xuggler进行视频编码/解码,仅是音频.但是,我记得还看到警告说"必须安装Xuggler"等.我发现事实并非如此.您可以非常轻松地将罐子和本机库将其复制到您的应用中,并将它们设置在您的类路径/库路径中,以便Xuggler在不安装的情况下工作正常. 也就是说,我正在使用"标准"安装程序.使用Java Web启动可能会有所不同,因为沙箱更严格.例如,加载本机库. 包装的大小很难摆脱... cdn上的主机?
20 2023-01-31
编程技术问答社区
在xuggler中转发和倒带音频
我已经使用xuggler播放wav,au,aiff以外的音频文件.由于xuggler在低级别上执行音频解码,因此很难编写一种可以向前和倒带播放音频的方法. (解码Xuggler分析每个数据包,然后将其发送到播放) 可以一次阅读一堆数据包,然后发送下一个数据包进行播放.这种方式可以感觉到转发音频的效果. But i don't know how to implement this method此外,这不是我转发数据的最佳方法. 是否有任何直接方法可以转发和倒带音频?如果不是指导什么是算法,则执行此操作的步骤? 解决方案 您是否查看了IContainer中的seekKeyFrame()方法?请参阅在这里.在Seek上,您可以刷新数据,然后在执行方法时,容器应跳到给定的位置. 如果您想通过百分比呼叫执行此操作,则 getDuration()获取流的整个长度(如果有的话).然后,您可以从那里从那里开始准确的时间戳.
12 2023-01-19
编程技术问答社区
验证视频编码是H.264
我需要验证视频文件是(在Java中): 视频为H.264编码 音频是AAC编码 我已经研究了JMF和Xuggle. xuggle使加载和解码文件并将其变成另一种格式变得更加容易,但是我无法弄清楚如何确定我已加载的文件的编码. 所以我想知道Xuggle是否有能力简单地返回编码文件具有的视频和音频类型,或者我需要读取文件的位以确定自己? 如果我自己需要确定这个,可以有人指出我的文档,以h.264的格式 解决方案 所以我查看了Xuggler的解码演示并找到了答案,因此,对于将来寻找类似解决方案的任何人,这里是我编写的代码: // create a Xuggler container object IContainer container = IContainer.make(); if(container.open(file.getPath(),IContainer.Type.READ,null)
26 2023-01-03
编程技术问答社区