• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Java
  • 标签: vlc  

资源简介

利用VLC开源库封装服务器程序可用jar包,实现功能如下: 1.读取视频文件属性信息输出对象,包含属性:文件格式、视频编码、视频码率、视频分辨率、视频帧率、音频编码、音频采样率

资源截图

代码片段和文件信息


package info;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;
import javax.swing.Jframe;
import javax.swing.JPanel;

import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;

import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
import uk.co.caprica.vlcj.player.MediaPlayer;
import uk.co.caprica.vlcj.player.MediaPlayerEventAdapter;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;

/**
 * 所属包:test

 * 类名:SnapshotTest

 * -------------------

 * 描述:预设帧数,抽取截图

 * -------------------

 * 日期:2018年11月22日

 * 作者:cuixin
 */
public class SnapshotUtil {

public String getSnapshot(String path) throws Exception {

NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName() “F://VLC“);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName() LibVlc.class);
@SuppressWarnings(“unused“)
boolean discover = new NativeDiscovery().discover();
List listBar = new ArrayList();
listBar.add(0.20f);
listBar.add(0.50f);
listBar.add(0.70f);
listBar.add(0.90f);
MediaPlayerFactory factory = new MediaPlayerFactory();
MediaPlayer mediaPlayer = factory.newembeddedMediaPlayer();
mediaPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
@Override
public void snapshotTaken(MediaPlayer mediaPlayer String filename) {
System.out.println(“截取的快照:+(filename=“ + filename + “)“);
}
});
mediaPlayer.startMedia(path);
for (Float float1 : listBar) {
mediaPlayer.setPosition(float1);
Thread.sleep(1000);

File file3 = new File((int) (float1 * 100) + “.png“);

file3.deleteOnExit();
mediaPlayer.saveSnapshot(file3);
BufferedImage image3 = ImageIO.read(file3);
show(“截屏“ image3 3);
}
mediaPlayer.stop();
return path;
}

@SuppressWarnings(“serial“)
private static void show(String title final BufferedImage img int i) {
Jframe f = new Jframe(title);
f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
f.setContentPane(new JPanel() {
@Override
protected void paintChildren(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(img null 0 0);
}

@Override
public Dimension getPreferredSize() {
return new Dimension(img.getWidth() img.getHeight());
}
});
f.pack();
f.setLocation(50 + (i * 50) 50 + (i * 50));
f.setVisible(true);
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2613  2018-12-06 16:35  info\SnapshotUtil.java

     文件        776  2018-12-10 10:54  info\Test.java

     文件       2316  2018-12-04 14:28  info\TheMedia.java

     目录          0  2018-12-06 16:13  info

----------- ---------  ---------- -----  ----

                 5705                    4


评论

共有 条评论