ffmpeg.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 07 Feb 2023 00:39:25 +0200
changeset 2554 c83fb8d3809f
parent 2491 47d29886013c
permissions -rw-r--r--
Removed unrelated data.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2424
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
========
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
 ffmpeg
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
========
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
.. contents::
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
   :local:
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
2425
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
     8
Docs
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
     9
====
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    10
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    11
https://ffmpeg.org/documentation.html
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    12
  Docs index.
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    13
http://ffmpeg.org/ffmpeg-all.html
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    14
  Common options.
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    15
https://ffmpeg.org/faq.html
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    16
  FAQ.
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    17
https://ffmpeg.org/ffmpeg.html
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    18
  Syntax overview.
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    19
2424
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
Print supported options
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
=======================
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
2491
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    23
Supported formats::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    24
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    25
  ffmpeg -formats
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    26
2424
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
Supported decoders/encoders::
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
  ffmpeg -codecs
2491
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    30
  ffmpeg -encoders
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    31
  ffmpeg -decoders
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    32
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    33
Details for particular encoder/decoder::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    34
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    35
  ffmpeg -h decoder=h264
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    36
  ffmpeg -h encoder=libx264
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    37
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    38
Supported muxer/demuxer::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    39
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    40
  ffmpeg -muxers
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    41
  ffmpeg -demuxers
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    42
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    43
Details for particular muxer/demuxer::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    44
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    45
  ffmpeg -h muxer=webm
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    46
  ffmpeg -h demuxer=flv
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    47
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    48
Available filters::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    49
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    50
  ffmpeg -filters
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    51
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    52
Details for particular filter::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    53
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    54
  ffmpeg -h filter=aecho
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    55
  ffmpeg -h filter=blackdetect
2424
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
Pixel formats::
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  ffmpeg -pix_fmts
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
2491
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    61
Supported bitstream filters::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    62
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    63
  ffmpeg -bsfs
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    64
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    65
Layouts for audio (mono/stereo/etc)::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    66
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    67
  ffmpeg -layouts
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    68
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    69
Available protocols::
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    70
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    71
  ffmpeg -protocols
47d29886013c Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2426
diff changeset
    72
2426
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
    73
Probe file
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
    74
==========
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
    75
::
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
    76
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
    77
   mediainfo $FILE
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
    78
   ffprobe $FILE
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
    79
2425
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    80
Limiting bit rate
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    81
=================
2424
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    82
2425
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    83
``-maxrate`` should be accompanied with ``-bufsize`` option like::
2424
2a62ec5e8506 Print supported options.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    84
2425
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    85
  -maxrate 800k -bufsize 1200k
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    86
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    87
otherwise you'll get warning:
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    88
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    89
> VBV maxrate specified, but no bufsize, ignored
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    90
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    91
``-b:v RATE`` allows to specify average bitrate for video.
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    92
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    93
To specify video stream use syntax like::
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    94
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    95
  -c:v:0 libx264 -b:v:0 2000k -maxrate:v:0 2200k -bufsize:v:0 3000k
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    96
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    97
https://trac.ffmpeg.org/wiki/Limiting%20the%20output%20bitrate
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    98
  Limiting the output bitrate.
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
    99
https://trac.ffmpeg.org/wiki/EncodingForStreamingSites
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
   100
  Encoding for streaming sites.
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
   101
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
   102
H.264
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
   103
=====
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
   104
0dadee3a3b63 Limiting bit rate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2424
diff changeset
   105
https://trac.ffmpeg.org/wiki/Encode/H.264
2426
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   106
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   107
Adding a logo to a video
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   108
========================
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   109
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   110
::
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   111
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   112
  ffmpeg -i in.mp4 -i logo.png out.mp4
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   113
  ffmpeg -i in.mp4 -i logo.png -filter_complex "overlay=x=10:y=20" out.mp4
b8ad0acb827d Probe file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2425
diff changeset
   114