<strike id="uc6q2"><menu id="uc6q2"></menu></strike>
  • <strike id="uc6q2"></strike>
  • <strike id="uc6q2"></strike>
  • 視頻采集、截圖多媒體處理工具FFmpeg

    2012年01月13日    點擊數: 23148    字體:     

      多媒體處理工具

      FFmpeg

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

      視頻采集功能:

      FFmpeg是在Linux下開發出來的,但它可以在包括Windows在內的大多數操作系統中編譯。這個項目是由Fabrice Bellard發起的,現在由Michael Niedermayer主持。

      ffmpeg視頻采集功能非常強大,不僅可以采集視頻采集卡或USB攝像頭的圖像,還可以進行屏幕錄制,同時還支持以RTP方式將視頻流傳送給支持RTSP的流媒體服務器,支持直播應用。

      ffmpeg在Linux下的視頻采集

      在Linux平臺上,ffmpeg對V4L2的視頻設備提高了很好的支持,如:

      ./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秒鐘視頻,對video4linux2視頻設備進行采集,采集QCIF(176*144)的視頻,每秒8幀,視頻設備為/dev/video0,視頻編碼為h263,輸出格式為RTP,后面定義了IP地址及端口,將該碼流所對應的SDP文件重定向到/tmp/ffmpeg.sdp中,將此SDP文件上傳到流媒體服務器就可以實現直播了。

      ffmpeg在windows下的視頻采集

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

      視頻格式轉換功能:

      ffmpeg視頻轉換功能。視頻格式轉換,比如可以將多種視頻格式轉換為flv格式,可不是視頻信號轉換 ,,

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

      視頻截圖功能:

      對于選定的視頻,截取指定時間的縮略圖。視頻抓圖,獲取靜態圖和動態圖,不提倡抓gif文件;因為抓出的gif文件大而播放不流暢

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

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

    視頻轉碼:

        List commend = newjava.util.ArrayList();

        commend.add(ffmpeg硬盤路徑);

        commend.add("-i");

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

        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("視頻轉碼開始...");

            // builder.start();

            Process process = builder.start();

            InputStream in = process.getInputStream();

            byte[] re = newbyte[1024];

            System.out.print("正在進行轉碼,請稍候");

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

            System.out.print(".");

            }

            System.out.println("");

            in.close();

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

        } catch(Exception e) {

            e.printStackTrace();

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

        }

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

    視頻截圖:

        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("正在進行截圖,請稍候");

            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參數說明:

      1. 常用通用選項

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

      2. 常用視頻選項

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

      3. 常用音頻選項

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

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

     

     

     
    0% ( 0 )
    0% ( 0 )
     

    典型案例

    • 江蘇新寧現代物流股份有限

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

    • 北京中坤投資集團有限公司

      北京中坤投資集團有限公司成立于1995年,目前擁有資產高出800多億人民幣,歷經十余年穩健發展,現已成長為在地產、度假產...

    • QQ客服: 點擊這里給我發消息
    • 用戶Q群:87444984
    Copyright ? 2007-2021 匯訊Wiseuc. 粵ICP備10013541號    
    展開
    精品动漫一区二区无遮挡| 成人综合久久精品色婷婷| 日韩国产一区二区| 成人无号精品一区二区三区 | 精品在线一区二区| 久久九九AV免费精品| 四虎成人精品无码永久在线| 91麻豆精品一二三区在线| 97久久精品国产精品青草| 久久国产成人精品| 亚洲性日韩精品一区二区三区| 国内揄拍国内精品视频| 久久精品加勒比中文字幕| 国产女人乱人伦精品一区二区| 亚洲国产精品高清久久久| 中文字幕国产日韩| 1204国产成人精品视频| 亚洲精品高清在线| 久久国产美女免费观看精品| 久久99精品九九九久久婷婷| 国产人妻777人伦精品hd| 久久国产加勒比精品无码| 无码国模国产在线无码精品国产自在久国产| 国产午夜精品久久久久免费视| 四虎永久在线精品视频| 国产精品社区在线观看| 久久精品www人人爽人人| 秋霞午夜鲁丝片午夜精品久| 探花国产精品三级在线播放| **毛片免费观看久久精品| 中文字幕精品在线| 麻豆国产96在线日韩麻豆| 欧美日韩久久久精品A片| 色国产精品一区在线观看| 999精品视频这里只有精品| 精品偷自拍另类在线观看| 久久亚洲国产精品123区| 国产精品亚洲一区二区三区在线观看| 日韩精品在线一区二区| 久久亚洲精品成人av无码网站| 日韩高清一区二区三区不卡|