<ul id="aaoko"></ul>
<strike id="aaoko"><s id="aaoko"></s></strike>
<strike id="aaoko"></strike>

視頻采集、截圖多媒體處理工具FFmpeg

2012年01月13日    點(diǎn)擊數(shù): 23360    字體:     

  多媒體處理工具

  FFmpeg

  多媒體視頻處理工具fmpeg有非常強(qiáng)大的功能包括視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水引等FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。它包括了目前領(lǐng)先的音/視頻編碼庫libavcodec。

  視頻采集功能:

  FFmpeg是在Linux下開發(fā)出來的,但它可以在包括Windows在內(nèi)的大多數(shù)操作系統(tǒng)中編譯。這個(gè)項(xiàng)目是由Fabrice Bellard發(fā)起的,現(xiàn)在由Michael Niedermayer主持。

  ffmpeg視頻采集功能非常強(qiáng)大,不僅可以采集視頻采集卡或USB攝像頭的圖像,還可以進(jìn)行屏幕錄制,同時(shí)還支持以RTP方式將視頻流傳送給支持RTSP的流媒體服務(wù)器,支持直播應(yīng)用。

  ffmpeg在Linux下的視頻采集

  在Linux平臺(tái)上,ffmpeg對(duì)V4L2的視頻設(shè)備提高了很好的支持,如:

  ./ffmpeg -t 10 -f video4linux2 -s 176*144 -r 8 -i /dev/video0 -vcodec h263 -f rtp rtp://192.168.1.105:5060 > /tmp/ffmpeg.sdp

  以上命令表示:采集10秒鐘視頻,對(duì)video4linux2視頻設(shè)備進(jìn)行采集,采集QCIF(176*144)的視頻,每秒8幀,視頻設(shè)備為/dev/video0,視頻編碼為h263,輸出格式為RTP,后面定義了IP地址及端口,將該碼流所對(duì)應(yīng)的SDP文件重定向到/tmp/ffmpeg.sdp中,將此SDP文件上傳到流媒體服務(wù)器就可以實(shí)現(xiàn)直播了。

  ffmpeg在windows下的視頻采集

  在windows下關(guān)于ffmpeg視頻采集的資料非常少,但是ffmpeg還是支持windows下視頻采集的。ffmpeg支持windows下video for windows(VFW)設(shè)備的視頻采集,不過VFW設(shè)備已經(jīng)過時(shí),正在被WDM的視頻設(shè)備所取代,但是ffmpeg還沒有支持WDM的計(jì)劃,不過好像有將WDM轉(zhuǎn)為VFW的工具,因此ffmpeg還是可以在windows下進(jìn)行視頻采集的。

  視頻格式轉(zhuǎn)換功能:

  ffmpeg視頻轉(zhuǎn)換功能。視頻格式轉(zhuǎn)換,比如可以將多種視頻格式轉(zhuǎn)換為flv格式,可不是視頻信號(hào)轉(zhuǎn)換 ,,

  ffmpeg可以輕易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換(wma,rm,avi,mod等),例如可以將攝錄下的視頻avi等轉(zhuǎn)成現(xiàn)在視頻網(wǎng)站所采用的flv格式。

  視頻截圖功能:

  對(duì)于選定的視頻,截取指定時(shí)間的縮略圖。視頻抓圖,獲取靜態(tài)圖和動(dòng)態(tài)圖,不提倡抓gif文件;因?yàn)樽コ龅膅if文件大而播放不流暢

  給視頻加水引功能:使用ffmpeg 視頻添加水印(logo)。

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

視頻轉(zhuǎn)碼:

    List commend = newjava.util.ArrayList();

    commend.add(ffmpeg硬盤路徑);

    commend.add("-i");

    commend.add(轉(zhuǎn)碼文件硬盤路徑);

    commend.add("-y");

    commend.add("-ar");

    commend.add("22050");

    commend.add("-s");

    commend.add("480*360");

    commend.add("-b");

    commend.add("1000");

    commend.add("-qscale");

    commend.add("4");

    commend.add(輸入文件路徑);

    try{

        ProcessBuilder builder = newProcessBuilder();

        builder.command(commend);

        builder.redirectErrorStream(true);

        System.out.println("視頻轉(zhuǎn)碼開始...");

        // builder.start();

        Process process = builder.start();

        InputStream in = process.getInputStream();

        byte[] re = newbyte[1024];

        System.out.print("正在進(jìn)行轉(zhuǎn)碼,請(qǐng)稍候");

        while(in.read(re) != -1) {

        System.out.print(".");

        }

        System.out.println("");

        in.close();

        System.out.println("視頻轉(zhuǎn)碼完成...");

    } catch(Exception e) {

        e.printStackTrace();

        System.out.println("視頻轉(zhuǎn)碼失敗!");

    }

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

視頻截圖:

    List commend = newjava.util.ArrayList();

    commend.add(ffmpeg文件硬盤路徑);

    commend.add("-i");

    commend.add(待截圖文件硬盤路徑);

    commend.add("-y");

    commend.add("-f");

    commend.add("image2");

    commend.add("-ss");

    commend.add("8");

    commend.add("-t");

    commend.add("0.001");

    commend.add("-s");

    commend.add("350*240");

    commend.add(截圖的圖片保存路徑);

    try{

        ProcessBuilder builder = newProcessBuilder();

        builder.command(commend);

        builder.redirectErrorStream(true);

        System.out.println("視頻截圖開始...");

        // builder.start();

        Process process = builder.start();

        InputStream in = process.getInputStream();

        byte[] re = newbyte[1024];

        System.out.print("正在進(jìn)行截圖,請(qǐng)稍候");

        while(in.read(re) != -1) {

        System.out.print(".");

        }

        System.out.println("");

        in.close();

        System.out.println("視頻截圖完成...");

    } catch(Exception e) {

        e.printStackTrace();

        System.out.println("視頻截圖失敗!");

    }

  FFMpeg參數(shù)說明:

  1. 常用通用選項(xiàng)

  -i fileName : 輸入文件-y : 覆蓋輸出文件-t 持續(xù)時(shí)間(秒) : 錄制多久-ss 指定時(shí)間(秒) : 開始錄制點(diǎn)-f 格式: 強(qiáng)迫采用格式(iamge2:jpg;gif:gif)

  2. 常用視頻選項(xiàng)

  -b 比特率: 默認(rèn)為200(kb/s)-r 幀頻: 默認(rèn)為25-s 幀大小: 寬x高(默認(rèn)160x128)-aspect 設(shè)置橫縱比: 4:3-vn : 不做視頻記錄

  3. 常用音頻選項(xiàng)

  -ab 音頻碼率-ar 音頻采樣率-an 不使用音頻記錄

  windows下用ffmpeg.exe下載路徑http://ffmpeg.zeranoe.com/builds/ 自己選擇32位或64位 

 

 

 
0% ( 0 )
0% ( 0 )
 

典型案例

  • 江蘇新寧現(xiàn)代物流股份有限

    江蘇新寧現(xiàn)代物流股份有限公司(以下簡(jiǎn)稱“公司”),前身是昆山新寧公共保稅倉儲(chǔ)有限公司,公司始建于1997年,2000年4...

  • 北京中坤投資集團(tuán)有限公司

    北京中坤投資集團(tuán)有限公司成立于1995年,目前擁有資產(chǎn)高出800多億人民幣,歷經(jīng)十余年穩(wěn)健發(fā)展,現(xiàn)已成長(zhǎng)為在地產(chǎn)、度假產(chǎn)...

  • QQ客服: 點(diǎn)擊這里給我發(fā)消息
  • 用戶Q群:87444984
Copyright ? 2007-2021 匯訊Wiseuc. 粵ICP備10013541號(hào)    
展開
无码人妻精品一区二区| 国产日韩精品一区二区三区在线| 人妻熟妇乱又伦精品视频APP| 99re最新地址精品视频| 日本精品久久久中文字幕| 久热精品视频第一页| 亚洲国产91精品无码专区 | 日本精品少妇一区二区三区| 国产亚洲高清在线精品不卡| 超碰97久久国产精品牛牛| 无码国产精品一区二区免费I6 | 国产av无码专区亚洲国产精品| 日韩在线免费视频| 日韩欧美一区二区三区免费观看| 日韩亚洲欧洲在线com91tv| 国产一区精品视频| 日韩电影无码A不卡| 国产偷窥熟女精品视频大全| 国产精品国产国产aⅴ| 精品久久洲久久久久护士 | 中文字幕日韩专区精品系列| 国产精品国产三级在线专区| 亚洲国产精品一区二区第一页免 | 精品国产呦系列在线观看免费 | 中国精品一级毛片免费播放| 精品伦精品一区二区三区视频| 国产三级精品三级在线观看专1| 国产精品男男视频一区二区三区| 亚洲午夜精品一级在线播放放| 午夜国产精品无套| 国产成人精品高清不卡在线| 国产日韩精品无码区免费专区国产| 精品久久久久久无码人妻蜜桃| 精品无码人妻久久久久久| 久久精品夜色噜噜亚洲A∨| 久久久久久久久久久免费精品| 正在播放国产精品每日更新| 国产色婷婷五月精品综合在线| 国产伦精品一区二区三区| 亚洲AV永久无码精品成人| 日韩精品区一区二区三VR|