[FFmpeg-user] What is the difference between versions of ffmpeg?
skyscanner at gmx.ca
skyscanner at gmx.ca
Sat Oct 4 20:56:30 CEST 2014
On Sat, 4 Oct 2014 10:03:50 +0000 (UTC), Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:
> <skyscanner <at> gmx.ca> writes:
> > As I wrote in an earlier thread I am using ffmpeg to
> > mix three audio streams down to a single 5.1 stream,
> > using this syntax:
> > ffmpeg -i "original program filename.ts" -c:v copy
> > -filter_complex '[0:1][0:2][0:3]
> > amerge=inputs=3,pan=5.1:FL=c0:FR=c1:FC=c2:LFE=c3:BL=c4:BR=c5'
> > -c:a mp2 "converted program filename.ts"
> > This works fine on my OS X machine, which is running
> > this version:
> > $ ffmpeg -version
> > ffmpeg version 2.2.2-tessus
> This is old and not really supported on this mailing list.
No problem; that one worked fine anyway.
> > $ ffmpeg -version
> > ffmpeg version 1.0.10
> > The version there is from the
> > deb http://www.deb-multimedia.org wheezy main non-free
> I have no idea why you are trying this version that is
> exactly two years old (well, I do know now that I looked
> at the new download page, it actually is highly
> misleading, sorry about that).
That's it, I just went to the download page at ffmpeg.org (http://ffmpeg.org/download.html[http://ffmpeg.org/download.html]) and clicked on Linux Packages and it took me to http://ffmpeg.org/download.html#build-linux[http://ffmpeg.org/download.html#build-linux] and there I clicked on "Stable", which took me to http://www.deb-multimedia.org/[http://www.deb-multimedia.org/] and there it says:
For wheezy (stable) amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc and sparc packages
add in your /etc/apt/sources.list
non-free is for i386 and amd64 arches only.
deb http://www.deb-multimedia.org[http://www.deb-multimedia.org] wheezy main non-free
deb ftp://ftp.deb-multimedia.org wheezy main non-free
deb http://www.deb-multimedia.org[http://www.deb-multimedia.org] stable main non-free
deb ftp://ftp.deb-multimedia.org stable main non-free
I just picked the first one and added it as instructed and then used apt-get to install that version. Should I now use apt-get remove to uninstall it and then remove that entry from my /etc/apt/sources.list ?
> Please either compile current FFmpeg git head by
> yourself, by default you get a static binary that you
> don't have to install to use and that cannot interfere
> with anything you already have on your system.
That's a bit beyond my level of understanding, though if there were clear step-by-step instructions on how to do that (that don't assume any prior knowledge on my part, especially with regard to git) I might have tried that. However...
> As an alternative, please use the static binaries
> provided on http://johnvansickle.com/ffmpeg/[http://johnvansickle.com/ffmpeg/][http://johnvansickle.com/ffmpeg/[http://johnvansickle.com/ffmpeg/]]
I tried that one and it seems to work fine. And I REALLY wish that had been offered on the download page. The reason is that in my attempts to install ffmpeg, first from the Debian repository (which actually brought in the libav version, I believe), and then from the download link mentioned above, a whole lot of dependencies were added that I would rather not have seen added. Perhaps they don't do anything bad other than occupy disk space but still, if they don't need to be there I'd rather they weren't. And apt-get is really good about bringing in dependencies when you install software, but when you go to remove it, it generally only removes the specific package that you've asked it to. So I REALLY wish that the download page had at least mentioned this option.
> > What is the difference between the two versions that
> > might cause one to produce jerky video and the other
> > smooth playback
> One is a little too old and unsupported the other
Seems strange to me that the "ancient" version seems to work better than the "little too old" version in this particular application, but maybe it has something to do with the different underlying OS. In any event I have no idea how you'd get a newer version for OS X, even if that were important to me, which right now it isn't.
> PS: Don't believe the lies spread on other mailing
> list, they are only written to confuse you and other
> users ;-)
Believe me, at first I was plenty confused by all this business surrounding the different versions of ffmpeg. I have no idea why the Ubuntu/Debian folks thought it was okay to just replace ffmpeg with libav/avconf, especially if they were not going to make sure it was backward compatible. But, that is a fight I don't want to get into the middle of. It makes it hard for us users though, especially because up until a week or so ago I had never done anything with ffmpeg directly, therefore I had no idea there were different versions and forks and all that.
> Please find more information on
I saw that page sometime in the last two or three days and then it clicked. Still, until you mentioned that stable version, I hadn't found anything that ran under Debian and produced videos that were watchable on a low-powered HTPC.
I don't know who is in charge of maintaining that download page at http://www.deb-multimedia.org/[http://www.deb-multimedia.org/] but my suggestion would be that newer builds be linked from that page, or that alternately, the ffmpeg.org download page offers a link to the http://johnvansickle.com/ffmpeg/[http://johnvansickle.com/ffmpeg/] page as a _first_ choice. Because, I suspect that is the version that most Ubuntu and Debian users (that know enough to seek out ffmpeg rather than fiddling around with the libav version from their repositories) would actually want.
Anyway, thank you very much for bringing that version to my attention; that seems to be the one that works!
I do have another question: When I am running ffmpeg this way, it prints out the following four lines as part of its output - I notice them because they are all or part in green and yellow text:
[Parsed_pan_1 @ 0x3bd7e20] This syntax is deprecated. Use '|' to separate the list items.
[Parsed_amerge_0 @ 0x3bc73c0] No channel layout for input 1
[Parsed_amerge_0 @ 0x3bc73c0] Input channel layouts overlap: output layout will be determined by the number of distinct input channels
[Parsed_pan_1 @ 0x3bd7e20] Pure channel mapping detected: 0 1 2 3 4 5
I don't understand all that but it's the first line that has me concerned. What does it mean by, "This syntax is deprecated. Use '|' to separate the list items"? And is there anything else there I should be concerned about? For reference, I'll repeat how I am invoking ffmpeg:
ffmpeg -i "original program filename.ts" -c:v copy -filter_complex '[0:1][0:2][0:3]amerge=inputs=3,pan=5.1:FL=c0:FR=c1:FC=c2:LFE=c3:BL=c4:BR=c5' -c:a mp2 "converted program filename.ts"
More information about the ffmpeg-user