zoukankan      html  css  js  c++  java
  • FFMPEG 在ubuntu下的安装与使用

    转载自 http://www.cnblogs.com/dwdxdy/p/3240167.html


     (部分一:安装)

    ffmpeg的安装:

    1.下载源文件(以ffmpeg1.2.1为例):

    http://ffmpeg.org/ffmpeg-1.2.1.tar.bz2

    见http://ffmpeg.org/download.html

    2.解压:tar xvjf ffmpeg-1.2.1.tar.bz2

    3.配置ffmpeg:

    ./configure --enable-shared --prefix=/usr 注意路径

    4.make

    5.sudo make install

    6.在/usr/include下

    sudo mkdir ffmpeg

    7.cp -r libav* libsw* ffmpeg 


    (部分二: 使用)

    1.分离视频音频流

    ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流
    ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流

    2.视频解复用

    ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
    ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

    3.视频转码

    ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264              //转码为码流原始文件
    ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264  //转码为码流原始文件
    ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi            //转码为封装文件
    //-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制

    4.视频封装

    ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

    5.视频剪切

    ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg        //提取图片
    ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi    //剪切视频
    //-r 提取图像的频率,-ss 开始时间,-t 持续时间

    6.视频录制

    ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

    7.YUV序列播放

    ffplay -f rawvideo -video_size 1920x1080 input.yuv

    8.YUV序列转AVI

    ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

    常用参数说明:

    主要参数:
    -i 设定输入流
    -f 设定输出格式
    -ss 开始时间
    视频参数:
    -b 设定视频流量,默认为200Kbit/s
    -r 设定帧速率,默认为25
    -s 设定画面的宽与高
    -aspect 设定画面的比例
    -vn 不处理视频
    -vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器
    音频参数:
    -ar 设定采样率
    -ac 设定声音的Channel数
    -acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
    -an 不处理音频


    (部分三:实例)

    import os
    import sys
    import os.path

    startdir = './AVI'
    targetdir = './JPG'
    for dirpath, dirnames, filenames in os.walk(startdir):
            for filename in filenames:
                   name, suffix = os.path.splitext(filename)
                   if suffix=='.avi':
                       filepath = os.path.join(dirpath, filename)
                       tardir  = targetdir+'/'+name
                       if not os.path.exists(tardir):
                           os.mkdir(tardir)
                       cmd = "ffmpeg -i %s -r 20 -f  image2  %s/%%3d.jpeg"%(filepath, tardir)
                       print cmd
                       os.system(cmd)

  • 相关阅读:
    【C语言】23typedef
    C#蓝牙开发之查找设备以及配对
    GridView获取隐藏列的值
    PDA(Windows Mobile)调用远程WebService
    VS2008使用宏记录来实现自动增加注释信息
    CS 系统框架二[部分内容更新]
    GridView里面嵌套RadioButton
    .Net 以报表的形式加载SAP里面的数据
    取GridView的PagerTemplate里面的控件ID
    《深入Ajax架构和最佳实践》读书笔记
  • 原文地址:https://www.cnblogs.com/ruichenduo/p/7565519.html
Copyright © 2011-2022 走看看