⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmf.txt

📁 jmf java的媒体框架的是用 。jmf如何处理媒体文件
💻 TXT
📖 第 1 页 / 共 2 页
字号:
  基本步骤是首先获取视频、音频捕获设备的信息,然后再根据取得的设备信息确定设备的位置。找到设备的位置以后,调用Manager的CreatePlayer方法创建Player,当Player开始播放的时候,就开始了捕获的过程。 
  有多种方法获得捕获设备信息,可以通过查询指定的格式,也可以查询特定的设备名字。具体步骤如下: 
  1. 先把所有的捕获设备调出来 
  2. 所有的视频捕获设备的名字都是以vfw开头的,所以取得捕获设备列表中以vfw 开头的设备名字就是视频捕获设备 
  3. 获取设备的medialocator地址 
  4. 创建Player,当Play开始的时候,就开始了视频捕获的过程 
  2.5保存摄像头数据为视频文件 
  首先是找到捕获设备,然后取的捕获设备的位置信息。如果要保存所采集的数据,就要创建一个处理器。然后将处理器的输出作为数据池的输入。当启动数据池的时候,就可以把捕获的数据保存成文件了。具体步骤如下: 
  1. 获取视频捕获设备的medialocator地址 
  2. 以获取的medialocator为参数,创建Processor 
  3. 设置Processor,输出类型为AVI格式 
  4. 以Processor的输出为参数,创建数据源 
  5. 建立一个保存文件位置的MediaLocator 
  6. 以输入数据源和输出数据源为参数,建立一个DATASINK 
  7. 调用Processor的StreamWriterControl,设置Processor控制生成文件的大小 
  8. 设置完毕,可以启动Processor和DataSink来保存捕获数据了 
  2.6 捕获音频、视频数据为QuickTime格式的文件 
  使用处理器模型来捕获实时的视频、音频数据并且将数据轨道进行编码、混合,最后保存为QuickTime 格式的文件。 
  首先构建一个处理器模型,设定好特定的数据轨道和输出内容格式。然后使用这个处理器模型来创建一个处理器。处理器会自动连接到符合文件格式要求的捕获设备。具体步骤如下: 
  1. 设定要输出的音频格式和视频格式 
  2. 设定要输出的文件类型为QuickTime格式 
  3. 以数据轨道输出格式和文件输出类型为参数,创建ProcessorModel 
  4. 由ProcessorModel对象创建Processor对象 
  5. 以Processor的输出为参数创建数据源 
  6. 建立一个记录保存文件的MediaLocator 
  7. 创建DataSink 
  8. 开始保存数据文件,启动处理器 
  9. 当结束捕获视频时,停止处理器,并关掉它 
  10. 当数据池接到EndOfStream事件时,停止保存文件。 
  2.7 发送实时媒体数据 
  如果需要将媒体数据发送到网络,首先需要用Processor生成RTP编码的数据源,然后创建SessionManager或者DataSink来控制传输过程。具体步骤如下: 
  1. 获取视频采集设备 
  2. 创建Processor,连接到视频采集设备 
  3. 等待,直到processor的状态变成configured,设置输出格式为RAW_RTP 
  4. 列出所有的和数据轨道相关的控制器 
  5. 遍历这些控制器,找到可以控制输出格式的控制器 
  6. 找到了数据轨道的格式控制器之后,设置输出格式,输出格式输出为VideoFormat.JPEG_RTP 
  7. 准备工作已经做好,可以调用Processor的realize方法 
  8. 当Processor进出realized状态以后,可以取得Processor的输出作为数据源 
  9. 可以把这个数据源作为参数传递给manager,通过manager创建一个RTP的数据池。 
  10. 先设置一个发送数据流的多播目的网址 
  11. 确定了数据源和发送地址,可以建立数据池DataSink了,建立成功后调用open()和start()方法,就可以在网上以多播方式发送捕获的内容了 
  2.8 接收实时视频数据 
  接收网上传输的数据流时,首先要构建一个MediaLocator来描述RTP 进程,Manager为进程中的第一个数据流创建播放器,当从进程中检测到数据时,Player会发出RealizeComplete事件。 
  通过监听RealizeComplete事件,你可以确定是否有数据到了,还可以确定Player是否准备好播放数据了。当Player发出这个事件时,就可以获取播放器的可视面板和控制面板了。具体实现步骤如下: 
  1. 确定RTP 数据源的地址,例如:String url= "rtp://224.144.251.104:49150/audio/1" 
  2. 以RTP数据源地址为参数,创建MediaLocator 
  3. 以MediaLocator为参数,创建Player 
  4. 为PLAYER添加监听器,以便监听RealizeComplete事件 
  三. 实验效果总结 
  JMF2.0 支持媒体捕获,并且考虑到了程序开发者需求。允许程序开发者在媒体处理、媒体控制上添加自己的控制器。JMF 提供的插件的架构使得直接访问媒体数据成为可能。这样JMF可以更方便的被扩展。JMF的设计目的是使开发简便、支持媒体捕获、支持使用JAVA技术开发媒体传输以及视频会议等应用、支持高级开发者开发插件扩展JMF应用,新的特性还可以和原有的系统很好的融合。允许开发者开发定制的,可下载的编码器、处理器、分离器和组合器。 
  JMF的类库还可以提供对RTP(实时传输协议)的支持。RTP支持在网上实时的发送、接收媒体流。RTP可以用在开发视频点播、音频点播或者网上的交互内容服务等应用。 
  四. 进一步的研究工作 
  本文研究了JAVA视频应用基本内容,为进一步扩展JMF的应用开发打下了基础。在这一段的研究中积累的很多经验。由于时间的关系,只是初步了解了如何通过插件技术扩展JMF的应用能力。今后需要做的主要研究工作和研究方向主要有 
  1、编写解码器插件,扩展JMF的应用能力。使得JMF可以支持更多的媒体类型; 
  2、编写处理器插件,增强JMF的视频处理能力,使得JMF的视频编辑能力更强。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -