第一種方式:1、用HttpClient模擬請(qǐng)求html 獲取html源碼;2、用jsoup方法抓取解析網(wǎng)頁(yè)數(shù)據(jù)

10年積累的成都網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有山城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
第二種方式:1、用HttpClient模擬請(qǐng)求html 獲取html源碼;2、用正則抓取解析網(wǎng)頁(yè)數(shù)據(jù)
有很多種方式能夠獲取html源碼,源碼獲取到了數(shù)據(jù)解析就很容易了。你可以百度一下有很多
攝像頭獲取到的數(shù)據(jù)其實(shí)都是一幀一幀的圖片,任何語(yǔ)言不僅僅是java都可以對(duì)這些數(shù)據(jù)進(jìn)行處理,但是Java不是最佳的選擇。
針對(duì)這些圖片你首先要知道攝像頭是否對(duì)視頻流使用了壓縮技術(shù),例如:H263\H264或者是沒(méi)有壓縮過(guò)的。
如果是壓縮過(guò)的,你需要先對(duì)每一幀進(jìn)行解編碼(DECODE),然后就是一張圖了,你進(jìn)行你要做的編輯,然后再編碼(ENCODE),再放入視頻流中。
C語(yǔ)言開(kāi)發(fā)的視頻處理軟件是cstream,你可以看一看,這個(gè)是通道式處理,添加插件,處理每一個(gè)buffer,一個(gè)buffer就是一幀,同時(shí)也可以處理多種格式的音頻。
對(duì)視頻的編輯不是簡(jiǎn)簡(jiǎn)單單就能實(shí)現(xiàn)的,需要對(duì)算法有很好的了解。
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.ControllerClosedEvent;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.media.Time;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class JMFMediaPlayer extends JFrame implements ActionListener,
ControllerListener, ItemListener {
// JMF的播放器
Player player;
// 播放器的視頻組件和控制組件
Component vedioComponent;
Component controlComponent;
// 標(biāo)示是否是第一次打開(kāi)播放器
boolean first = true;
// 標(biāo)示是否需要循環(huán)
boolean loop = false;
// 文件當(dāng)前目錄
String currentDirectory;
// 構(gòu)造方法
public JMFMediaPlayer(String title) {
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
// 用戶點(diǎn)擊窗口系統(tǒng)菜單的關(guān)閉按鈕
// 調(diào)用dispose以執(zhí)行windowClosed
dispose();
}
public void windowClosed(WindowEvent e){
if (player != null){
// 關(guān)閉JMF播放器對(duì)象
player.close();
}
System.exit(0);
}
});
// 創(chuàng)建播放器的菜單
JMenu fileMenu = new JMenu("文件");
JMenuItem openMemuItem = new JMenuItem("打開(kāi)");
openMemuItem.addActionListener(this);
fileMenu.add(openMemuItem);
// 添加一個(gè)分割條
fileMenu.addSeparator();
// 創(chuàng)建一個(gè)復(fù)選框菜單項(xiàng)
JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循環(huán)", false);
loopMenuItem.addItemListener(this);
fileMenu.add(loopMenuItem);
fileMenu.addSeparator();
JMenuItem exitMemuItem = new JMenuItem("退出");
exitMemuItem.addActionListener(this);
fileMenu.add(exitMemuItem);
JMenuBar menuBar = new JMenuBar();
menuBar.add(fileMenu);
this.setJMenuBar(menuBar);
this.setSize(200, 200);
try {
// 設(shè)置界面的外觀,為系統(tǒng)外觀
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {
e.printStackTrace();
}
this.setVisible(true);
}
/**
* 實(shí)現(xiàn)了ActionListener接口,處理組件的活動(dòng)事件
*/
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("退出")) {
// 調(diào)用dispose以便執(zhí)行windowClosed
dispose();
return;
}
FileDialog fileDialog = new FileDialog(this, "打開(kāi)媒體文件", FileDialog.LOAD);
fileDialog.setDirectory(currentDirectory);
fileDialog.setVisible(true);
// 如果用戶放棄選擇文件,則返回
if (fileDialog.getFile() == null){
return;
}
currentDirectory = fileDialog.getDirectory();
if (player != null){
// 關(guān)閉已經(jīng)存在JMF播放器對(duì)象
player.close();
}
try {
// 創(chuàng)建一個(gè)打開(kāi)選擇文件的播放器
player = Manager.createPlayer(new MediaLocator("file:"
+ fileDialog.getDirectory() + fileDialog.getFile()));
} catch (java.io.IOException e2) {
System.out.println(e2);
return;
} catch (NoPlayerException e2) {
System.out.println("不能找到播放器.");
return;
}
if (player == null) {
System.out.println("無(wú)法創(chuàng)建播放器.");
return;
}
first = false;
this.setTitle(fileDialog.getFile());
// 播放器的控制事件處理
player.addControllerListener(this);
// 預(yù)讀文件內(nèi)容
player.prefetch();
}
/**
* 實(shí)現(xiàn)ControllerListener接口的方法,處理播放器的控制事件
*/
public void controllerUpdate(ControllerEvent e) {
// 調(diào)用player.close()時(shí)ControllerClosedEvent事件出現(xiàn)。
// 如果存在視覺(jué)部件,則該部件應(yīng)該拆除(為一致起見(jiàn),
// 我們對(duì)控制面板部件也執(zhí)行同樣的操作)
if (e instanceof ControllerClosedEvent) {
if (vedioComponent != null) {
this.getContentPane().remove(vedioComponent);
this.vedioComponent = null;
}
if (controlComponent != null) {
this.getContentPane().remove(controlComponent);
this.controlComponent = null;
}
return;
}
// 如果是媒體文件到達(dá)尾部事件
if (e instanceof EndOfMediaEvent) {
if (loop) {
// 如果允許循環(huán),則重新開(kāi)始播放
player.setMediaTime(new Time(0));
player.start();
}
return;
}
// 如果是播放器預(yù)讀事件
if (e instanceof PrefetchCompleteEvent) {
// 啟動(dòng)播放器
player.start();
return;
}
// 如果是文件打開(kāi)完全事件,則顯示視頻組件和控制器組件
if (e instanceof RealizeCompleteEvent) {
vedioComponent = player.getVisualComponent();
if (vedioComponent != null){
this.getContentPane().add(vedioComponent);
}
controlComponent = player.getControlPanelComponent();
if (controlComponent != null){
this.getContentPane().add(controlComponent, BorderLayout.SOUTH);
}
this.pack();
}
}
// 處理“循環(huán)”復(fù)選框菜單項(xiàng)的點(diǎn)擊事件
public void itemStateChanged(ItemEvent e) {
loop = !loop;
}
public static void main(String[] args){
new JMFMediaPlayer("JMF媒體播放器");
}
}
試試吧,我這里運(yùn)行正常
視頻也是一個(gè)文件,就用file類就可以了,這里簡(jiǎn)單幫你實(shí)現(xiàn)一下吧:
---------------------------
//向該方法傳遞視頻文件的路徑
public static void getVideo(String filePath){
//得到一個(gè)File 對(duì)象
File fileImg=FraudinfoAction.getFraudImg(path);
//渲染一個(gè)二進(jìn)制字節(jié)碼文件
renderBinary(fileImg);
}
網(wǎng)站名稱:java獲取視頻代碼,java操作視頻文件
網(wǎng)頁(yè)地址:http://chinadenli.net/article32/dsiissc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容