watchdog wrote:I have understood that ffmpeg is going to get retired and supported only for compatibility problems. If you try to use directly ffmpeg in precise you are adviced that it is not possible and another standard is used (I don't remember the name, now I am in wary EDIT: avconv).
FFmpeg is a separate project from the avconv project (which was forked off from FFmpeg code). As far as I know the FFmpeg project has not been retired; at this moment the latest version of its ffmpeg code is version 1.1, which was released on 7 January 2013.
http://ffmpeg.org/
However, Debian and Ubuntu have adopted project code (avconv) from the libav project in preference to the FFmpeg project code. A problem that arises is that though the use and commandline options between the two (libav project's avconv and FFmpeg project's ffmpeg) is almost the same they are apparently not always exactly identical. Furthermore, as the following link (second post) points out the libav project also released their own temporary version of code they called "ffmpeg" which is the one which outputs the misleading warning message about ffmpeg binary being "provided for compatibility only":
http://superuser.com/questions/507386/l ... conv-today
The "compatibility" message is misleading because libav project's ffmpeg code IS NOT the same as the continuing to be developed ffmpeg code from FFmpeg project. Newer versions of libav project code apparently no longer provide the temporary ffmpeg and only avconv.
In summary, however, since Debian and Ubuntu are providing libav project code in preference to FFmpeg code (original ffmpeg) it may be necessary to start using avconv directly since if the use of the program options are not identical to ffmpeg then a symlink will not resolve the issue. I'm not sure of the situation with other Linux versions, however, and various programs traditionally relied on FFmpeg project ffmpeg (e.g. Mplayer, VLC, xine), so that potental problem has to be considered too.
As of 7 Jan 2013, the latest libav code is version 9.1. The version of libav project's avconv in Precise retro 5.4.3 (which I use) is 0.8.3. It also provides a libav project ffmpeg binary (which allows programs which refer to ffmpeg to work, albeit sometimes with some modifications to options and their commandline placement). Some differences between FFmpeg project ffmpeg and avconv are itemised in the libav code changelog for earlier libav code version 0.8_beta1:
https://git.libav.org/?p=libav.git;a=bl ... 2a;hb=HEAD
- ffplay/ffprobe/ffserver renamed to avplay/avprobe/avserver
100 - ffmpeg deprecated, added avconv, which is almost the same for now, except
101 for a few incompatible changes in the options, which will hopefully make them
102 easier to use. The changes are:
103 * The options placement is now strictly enforced! While in theory the
104 options for ffmpeg should be given in [input options] -i INPUT [output
105 options] OUTPUT order, in practice it was possible to give output options
106 before the -i and it mostly worked. Except when it didn't - the behavior was
107 a bit inconsistent. In avconv, it is not possible to mix input and output
108 options. All non-global options are reset after an input or output filename.
109 * All per-file options are now truly per-file - they apply only to the next
110 input or output file and specifying different values for different files
111 will now work properly (notably -ss and -t options).
112 * All per-stream options are now truly per-stream - it is possible to
113 specify which stream(s) should a given option apply to. See the Stream
114 specifiers section in the avconv manual for details.
115 * In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the
116 sense that they're specified after the output filename instead of before,
117 like all other options. In avconv this irregularity is removed, all options
118 apply to the next input or output file.
119 * -newvideo/-newaudio/-newsubtitle options were removed. Not only were they
120 irregular and highly confusing, they were also redundant. In avconv the -map
121 option will create new streams in the output file and map input streams to
122 them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for
123 each stream in the first input file.
124 * The -map option now has slightly different and more powerful syntax:
125 + Colons (':') are used to separate file index/stream type/stream index
126 instead of dots. Comma (',') is used to separate the sync stream instead
127 of colon.. This is done for consistency with other options.
128 + It's possible to specify stream type. E.g. -map 0:a:2 creates an
129 output stream from the third input audio stream.
130 + Omitting the stream index now maps all the streams of the given type,
131 not just the first. E.g. -map 0:s creates output streams for all the
132 subtitle streams in the first input file.
133 + Since -map can now match multiple streams, negative mappings were
134 introduced. Negative mappings disable some streams from an already
135 defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for
136 all the stream in the first input file, except for the second audio
137 stream'.
138 * There is a new option -c (or -codec) for choosing the decoder/encoder to
139 use, which allows to precisely specify target stream(s) consistently with
140 other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0
141 libvorbis sets the codec for the first audio stream and -c copy copies all
142 the streams without reencoding. Old -vcodec/-acodec/-scodec options are now
143 aliases to -c:v/a/s
144 * It is now possible to precisely specify which stream should an AVOption
145 apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while
146 -b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k
147 syntax is deprecated and will stop working soon.
148 * -map_chapters now takes only an input file index and applies to the next
149 output file. This is consistent with how all the other options work.
150 * -map_metadata now takes only an input metadata specifier and applies to
151 the next output file. Output metadata specifier is now part of the option
152 name, similarly to the AVOptions/map/codec feature above.
153 * -metadata can now be used to set metadata on streams and chapters, e.g.
154 -metadata:s:1 language=eng sets the language of the first stream to 'eng'.
155 This made -vlang/-alang/-slang options redundant, so they were removed.
156 * -qscale option now uses stream specifiers and applies to all streams, not
157 just video. I.e. plain -qscale number would now apply to all streams. To get
158 the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale
159 and -aq is now an alias for -q:a.
160 * -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which
161 uses stream specifiers. Use -bsf:v/a/s instead of the old options.
162 * -itsscale option now uses stream specifiers, so its argument is only the
163 scale parameter.
164 * -intra option was removed, use -g 0 for the same effect.
165 * -psnr option was removed, use -flags +psnr for the same effect.
166 * -vf option is now an alias to the new -filter option, which uses stream specifiers.
167 * -vframes/-aframes/-dframes options are now aliases to the new -frames option.
168 * -vtag/-atag/-stag options are now aliases to the new -tag option.
mcewanw (author of precord and pavrecord)