JMF实现将从摄像头和麦克读取的媒体信息保存成视频文件
来源:互联网 发布:多系统引导软件 编辑:程序博客网 时间:2024/04/30 15:41
编写JMF的程序最应该注意的是player的状态,因为只有player经过了正常的状态转换才能够正常进行读取媒体信息,和对媒体信息进行正常的操作。
以下是对读取的媒体信息进行保存的测试,程序启动后会读取10秒的媒体信息并进行保存:
package com.lcq.jmf;import java.io.File;import java.io.IOException;import javax.media.DataSink;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.Processor;import javax.media.format.VideoFormat;import javax.media.protocol.DataSource;import javax.media.protocol.FileTypeDescriptor;import jmapps.util.StateHelper;public class Save2File {public static void main(String[] args) throws Exception {// CaptureDeviceInfo info = (CaptureDeviceInfo)// CaptureDeviceManager.getDeviceList(new VideoFormat(null)).get(0);MediaLocator mediaLocator = new MediaLocator("vfw://0");// 此类描述媒体目录的地址????MediaLocator audioLocator = new MediaLocator("javasound://44100");DataSource[] dataSources = new DataSource[2];dataSources[0] = Manager.createDataSource(mediaLocator);dataSources[1] = Manager.createDataSource(audioLocator);DataSource ds = null;ds = Manager.createMergingDataSource(dataSources);ds = Manager.createCloneableDataSource(ds);Processor p = null;try {p = Manager.createProcessor(ds);} catch (Exception e) {e.printStackTrace();}StateHelper sh = new StateHelper(p);sh.configure(5000);VideoFormat vf = new VideoFormat(VideoFormat.CINEPAK);// AudioFormat vf = new AudioFormat(AudioFormat.IMA4);p.getTrackControls()[0].setFormat(vf);p.getTrackControls()[0].setEnabled(true);p.setContentDescriptor(new FileTypeDescriptor(FileTypeDescriptor.QUICKTIME));sh.realize(5000);File file = new File("video.avi");try {file.createNewFile();} catch (IOException e1) {e1.printStackTrace();}DataSink sink = null;try {sink = Manager.createDataSink(p.getDataOutput(), new MediaLocator(file.toURL()));} catch (Exception e) {e.printStackTrace();}try {p.start();sink.open();sink.start();} catch (Exception e) {e.printStackTrace();}try {Thread.sleep(10000);// 录制10秒} catch (InterruptedException e) {e.printStackTrace();}try {p.close();sink.stop();sink.close();} catch (Exception e) {e.printStackTrace();}}}
该程序中处理了视频的格式问题,可以进行存储后直接播放。但是视频和音频的混合播放好像有点问题,还需解决。
- JMF实现将从摄像头和麦克读取的媒体信息保存成视频文件
- JMF实现从摄像头和麦克截取视频和音频流进行播放
- matlab 读取视频文件和摄像头
- matlab 读取视频文件和摄像头
- Opencv(四):读取视频文件和摄像头
- artoolkit从读取摄像头改为读取视频文件或图像
- 实现学生信息的文件保存和读取
- 从摄像头或视频文件中读取视频流并显示
- 从摄像头或视频文件中读取视频流并显示
- opencv读取摄像头图像和读取视频文件图像
- 打开笔记本摄像头保存视频文件
- Android SharedPreferences(信息的保存和读取)
- OpenCV学习(二)读取视频文件和摄像头
- opencv读取图片,视频文件,摄像头
- opencv读取摄像头或视频文件
- 网页上如何调用摄像头和麦克
- 比较opencv2、opencv3关于读取视频文件、摄像头的编程风格
- 从NV中读取之前保存的网络信息
- cron表达式(quartz中时间表达式)
- 第三周任务2
- 能帮你职场突围的9个好习惯
- gvim菜单栏不显示了
- Qt中foreach的用法
- JMF实现将从摄像头和麦克读取的媒体信息保存成视频文件
- 淘宝网手机客户端开发(一)目录篇
- android资料总结
- 类QSettings使用
- plsql 使用技巧 及 语句集锦
- Linux错误码编码
- SDKMisc.h
- 1423. 魔王bug的2色定理
- 宽字符处理函数函数与普通函数对照表[转]