zoukankan      html  css  js  c++  java
  • ffmpeg转码参数设置

    ffmpeg用了很久了,也没有想写点什么。

    刚接触ffmpeg也是有大量的不理解的地方,不过慢慢的了解多了基本上都是可以使用的。

    本文主要介绍如何使用ffmpeg.exe进行转码。编译好的ffmpeg可以从下面目录下载:

    http://ffmpeg.org/download.html 

    首先,可以使用-formats命令,查看ffmpeg支持的封装格式。

    下面截取一段:(D、E分别表示解复用和复用)

    File formats:
     D. = Demuxing supported
     .E = Muxing supported
     --
      E 3g2             3GP2 (3GPP2 file format)
      E 3gp             3GP (3GPP file format)
     D  4xm             4X Technologies
      E a64             a64 - video for Commodore 64
     D  aac             raw ADTS AAC (Advanced Audio Coding)
     DE ac3             raw AC-3
     D  act             ACT Voice file format
     D  adf             Artworx Data Format
     D  adp             ADP
      E adts            ADTS AAC (Advanced Audio Coding)
     DE adx             CRI ADX
     D  aea             MD STUDIO audio
     D  afc             AFC
     DE aiff            Audio IFF
     DE alaw            PCM A-law
     D  alias_pix       Alias/Wavefront PIX image
     DE amr             3GPP AMR
     D  anm             Deluxe Paint Animation
     D  apc             CRYO APC
     D  ape             Monkey's Audio
     D  apng            Animated Portable Network Graphics
     D  aqtitle         AQTitle subtitles
     DE asf             ASF (Advanced / Active Streaming Format)
      E asf_stream      ASF (Advanced / Active Streaming Format)
     DE ass             SSA (SubStation Alpha) subtitle
     DE ast             AST (Audio Stream)
    

     可以使用-codecs命令,查看ffmpeg支持的编解码器,

    ffmpeg输出格式如下:(D、E表示的解码器、编码器)

    Codecs:
     D..... = Decoding supported
     .E.... = Encoding supported
     ..V... = Video codec
     ..A... = Audio codec
     ..S... = Subtitle codec
     ...I.. = Intra frame-only codec
     ....L. = Lossy compression
     .....S = Lossless compression
     -------
     D.VI.. 012v                 Uncompressed 4:2:2 10-bit
     D.V.L. 4xm                  4X Movie
     D.VI.S 8bps                 QuickTime 8BPS video
     .EVIL. a64_multi            Multicolor charset for Commodore 64 (encoders: a64multi )
     .EVIL. a64_multi5           Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5 )
     D.V..S aasc                 Autodesk RLE
     D.VIL. aic                  Apple Intermediate Codec
     DEVI.S alias_pix            Alias/Wavefront PIX image
     DEVIL. amv                  AMV Video
     D.V.L. anm                  Deluxe Paint Animation
     D.V.L. ansi                 ASCII/ANSI art
     D.V..S apng                 APNG (Animated Portable Network Graphics) image
     DEVIL. asv1                 ASUS V1
     DEVIL. asv2                 ASUS V2
     D.VIL. aura                 Auravision AURA
     D.VIL. aura2                Auravision Aura 2
     D.V... avrn                 Avid AVI Codec
     DEVI.. avrp                 Avid 1:1 10-bit RGB Packer
     D.V.L. avs                  AVS (Audio Video Standard) video
     DEVI.. avui                 Avid Meridien Uncompressed
     DEVI.. ayuv                 Uncompressed packed MS 4:4:4:4
    

    ffmpeg命令通常格式如下:

    ffmpeg -i xxx out_file  

    常用的转换格式命令如下:

    1. mpeg audio转pcm原始数据

    ffmpeg -i cctv2_4101.mpa -f s16le -ar 48000 -acodec pcm_s16le cctv2-4101-Normal.pcm

    2. jpg转yuv

    jpeg -> yuv420
    ffmpeg.exe -i input_file.jpg -pix_fmt yuv420p -y output_file.yuv -v 0

    yuv -> jpeg
    将大小为720x576的input_file.yuv原始数据另存为jpg格式
    ffmpeg.exe -y -s 720x576 -i input_file.yuv -vcodec mjpeg output_file.jpg

    3. 不同封装格式转换

    3gp to avi

    ffmpeg -i source.3gp -f avi -vcodec xvid -acodec mp3 -ar

    22050 destination.avi

    flv to 3gp
    ffmpeg -i source.flv -s 176×144 -vcodec h263 -r 25 -b 200
    -ab 64 -acodec mp3 -ac 1 -ar 8000 destination.3gp

    flv to mp4
    ffmpeg -i source.flv -vcodec h264 -r 25 -b 200 -ab 128
    -acodec mp3 -ac 2 -ar 44100 destination.mp3

    avi to mp4
    ffmpeg -i source.avi -f psp -r 29.97 -b 768k -ar 24000 -ab
    64k -s 320×240 destination.mp4

    mp4 to 3gp
    ffmpeg -i source.mp4 -s 176×144 -vcodec h263 -r 25 -b 12200
    -ab 12200 -ac 1 -ar 8000 destination.3gp

    avi to 3gp
    ffmpeg -i source.avi-s qcif -vcodec h263 -acodec mp3 -ac 1
    -ar 8000 -r 25 -ab 32 -y destination.3gp

    mpg to 3gp
    ffmpeg -i source.mpg -s qcif -vcodec h263 -acodec mp3 -ac 1
    -ar 8000 -ab 32 -y destination.3gp

    4. yuv转h264 raw/TS

    ffmpeg.exe -s 352x288 -pix_fmt yuv420p -i test_352x288.yuv -vcodec libx264 out.h264

    (若输出文件改为out.ts,即可实现yuv转ts)

    以下简单总结下ffmpeg命令参数:

    -i 指定要转换视频的源文件
    -s 视频转换后视频的分辨率
    -vcodec 视频转换时使用的编解码器(-codecs)
    -r 视频转换换的桢率(默认25桢每秒)
    -b 视频转换换的bit率
    -ab 音频转换后的bit率(默认64k)
    -acodec 制度音频使用的编码器(-codecs)
    -ac 制定转换后音频的声道

    -ar 音频转换后的采样率

    -an 禁用音频

    -vn 禁用视频

    -acodec copy 复制音频,不转码

    -vcodec copy 复制视频,不转码

  • 相关阅读:
    Redis
    Redux架构
    Dapper.NET
    JS的异步模式
    Session Redis Nginx
    .NET CORE的TagHelper智能提示
    一个Redis实现的分布式锁
    Redisson使用起来很方便,但是需要redis环境支持eval命令
    The Little Redis Book
    mybatis UpdateByExampleMapper UpdateByExampleSelectiveMapper
  • 原文地址:https://www.cnblogs.com/tocy/p/ffmpeg_transcode_formats.html
Copyright © 2011-2022 走看看