Browse code

Changelog: update ffmpeg/avconv incompatibility list.

Anton Khirnov authored on 2011/11/06 22:05:46
Showing 1 changed files
... ...
@@ -9,37 +9,72 @@ version <next>:
9 9
 - ffmpeg deprecated, added avconv, which is almost the same for now, except
10 10
 for a few incompatible changes in the options, which will hopefully make them
11 11
 easier to use. The changes are:
12
-    * -newvideo/-newaudio/-newsubtitle are gone, because they were redundant and
13
-      worked in a nonstandard way. -map is sufficient to add streams to output
14
-      files.
15
-    * -map now has slightly different and more powerful syntax.
16
-        + it's possible to specify stream type. E.g. -map 0:a:2 means 'third
17
-          audio stream'.
18
-        + omitting the stream index now maps all the streams of the given
19
-          type, not just the first. E.g. -map 0:s maps all the subtitle streams.
20
-        + colons (':') are used to separate file index/stream type/stream
21
-          index. Comma (',') is used to separate the sync stream. This is done
22
-          for consistency with other options.
23
-        + since -map can now match multiple streams, negative mappings were
12
+    * The options placement is now strictly enforced! While in theory the
13
+      options for ffmpeg should be given in [input options] -i INPUT [output
14
+      options] OUTPUT order, in practice it was possible to give output options
15
+      before the -i and it mostly worked. Except when it didn't - the behavior was
16
+      a bit inconsistent. In avconv, it is not possible to mix input and output
17
+      options. All non-global options are reset after an input or output filename.
18
+    * All per-file options are now truly per-file - they apply only to the next
19
+      input or output file and specifying different values for different files
20
+      will now work properly (notably -ss and -t options).
21
+    * All per-stream options are now truly per-stream - it is possible to
22
+      specify which stream(s) should a given option apply to. See the Stream
23
+      specifiers section in the avconv manual for details.
24
+    * In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the
25
+      sense that they're specified after the output filename instead of before,
26
+      like all other options. In avconv this irregularity is removed, all options
27
+      apply to the next input or output file.
28
+    * -newvideo/-newaudio/-newsubtitle options were removed. Not only were they
29
+      irregular and highly confusing, they were also redundant. In avconv the -map
30
+      option will create new streams in the output file and map input streams to
31
+      them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for
32
+      each stream in the first input file.
33
+    * The -map option now has slightly different and more powerful syntax:
34
+        + Colons (':') are used to separate file index/stream type/stream index
35
+          instead of dots. Comma (',') is used to separate the sync stream instead
36
+          of colon.. This is done for consistency with other options.
37
+        + It's possible to specify stream type. E.g. -map 0:a:2 creates an
38
+          output stream from the third input audio stream.
39
+        + Omitting the stream index now maps all the streams of the given type,
40
+          not just the first. E.g. -map 0:s creates output streams for all the
41
+          subtitle streams in the first input file.
42
+        + Since -map can now match multiple streams, negative mappings were
24 43
           introduced. Negative mappings disable some streams from an already
25
-          defined map. E.g. '-map 0 -map -0:a:1' means 'map everything except
26
-          for the second audio stream'.
27
-    * -vcodec/-acodec/-scodec are replaced by -c (or -codec), which
28
-      allows to precisely specify target stream(s) consistently with other
29
-      options. E.g. '-c:v libx264' sets the codec for all video streams,
30
-      '-c:a:0 libvorbis' sets the codec for the first audio stream and '-c
31
-      copy' copies all the streams.
44
+          defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for
45
+          all the stream in the first input file, except for the second audio
46
+          stream'.
47
+    * There is a new option -c (or -codec) for choosing the decoder/encoder to
48
+      use, which allows to precisely specify target stream(s) consistently with
49
+      other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0
50
+      libvorbis sets the codec for the first audio stream and -c copy copies all
51
+      the streams without reencoding. Old -vcodec/-acodec/-scodec options are now
52
+      aliases to -c:v/a/s
32 53
     * It is now possible to precisely specify which stream should an AVOption
33
-      apply to. See the manual for detailed explanation.
54
+      apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while
55
+      -b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k
56
+      syntax is deprecated and will stop working soon.
34 57
     * -map_chapters now takes only an input file index and applies to the next
35 58
       output file. This is consistent with how all the other options work.
36 59
     * -map_metadata now takes only an input metadata specifier and applies to
37 60
       the next output file. Output metadata specifier is now part of the option
38 61
       name, similarly to the AVOptions/map/codec feature above.
39
-    * Presets in avconv are disabled, because only libx264 used them and
40
-      presets for libx264 can now be specified using a private option
41
-      '-preset <presetname>'.
42
-    * -intra option was removed, it's equivalent to -g 0.
62
+    * -metadata can now be used to set metadata on streams and chapters, e.g.
63
+      -metadata:s:1 language=eng sets the language of the first stream to 'eng'.
64
+      This made -vlang/-alang/-slang options redundant, so they were removed.
65
+    * -qscale option now uses stream specifiers and applies to all streams, not
66
+      just video. I.e. plain -qscale number would now apply to all streams. To get
67
+      the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale
68
+      and -aq is now an alias for -q:a.
69
+    * -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which
70
+      uses stream specifiers. Use -bsf:v/a/s instead of the old options.
71
+    * -itsscale option now uses stream specifiers, so its argument is only the
72
+      scale parameter.
73
+    * -intra option was removed, use -g 0 for the same effect.
74
+    * -psnr option was removed, use -flags +psnr for the same effect.
75
+    * -vf option is now an alias to the new -filter option, which uses stream specifiers.
76
+    * -vframes/-aframes/-dframes options are now aliases to the new -frames option.
77
+    * -vtag/-atag/-stag options are now aliases to the new -tag option.
43 78
 - XMV demuxer
44 79
 - Windows Media Image decoder
45 80
 - LATM muxer/demuxer