-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 06/09/2012 06:19 PM, Dan Dennedy wrote: > On Sat, Jun 9, 2012 at 1:05 AM, Till Theato <root at ttill.de> wrote: > On 06/09/2012 04:30 AM, Dan Dennedy wrote: >>>> On Fri, Jun 8, 2012 at 6:57 PM, Lou <lou at lrcd.com> wrote: >>>>> On Fri, 8 Jun 2012 08:25:45 -0700 Dan Dennedy >>>>> <dan at dennedy.org> wrote: >>>>> >>>>>> On Thu, Jun 7, 2012 at 10:47 PM, Simon A. Eugster >>>>>> <simon.eu at gmail.com> wrote: >>>>>>> Thanks Lou, this worked. >>>>>>> >>>>>>> @Devs, I get a message that pcm_s16le is not supported, >>>>>>> and saw that although ffmpeg does support it, MLT does >>>>>>> not (or at least it is not listed). >>>>>>> >>>>>>> Why is this? >>>>>> >>>>>> it does as far as I know, but maybe your MLT is old or >>>>>> you have an incompatible version of libavcodec: >>>>>> >>>>> >>>>> I also see the "Unsupported audio codec: pcm_s16le" message >>>>> in Render > AVI DV for example on Arch Linux. >>>>> >>>>> $ kdenlive --version Qt: 4.8.2 KDE Development Platform: >>>>> 4.8.3 (4.8.3) Kdenlive: 0.9.2 >>>>> >>>>> $ melt --version melt 0.7.8 >>>> >>>> released Feb. 13, but the fix I noted is dated Feb. 25. The >>>> newest version is 0.8.0 > > Hey, > > I use latest MLT from git (0.8.1) and have the same problem with > ffmpeg 0.10.3 > >> I downloaded the release version of ffmpeg and reproduced the >> problem. The problem is this commit in MLT: > >> commit 0967c0dc30a4e91d26ef72c0d5cd2c69dda8613b Author: Brian >> Matherly <pez4brian at yahoo.com> Date: Sun Mar 18 14:18:47 2012 >> -0500 > >> Fix incorrect precompiler conditionals for libav/ffmpeg >> versions. > >> Needed to support ffmpeg 0.9 and 0.10 releases. > >> diff --git a/src/modules/avformat/consumer_avformat.c >> b/src/modules/avformat/consumer_avformat.c index 0b0322e..424ad9f >> 100644 --- a/src/modules/avformat/consumer_avformat.c +++ >> b/src/modules/avformat/consumer_avformat.c @@ -237,7 +237,7 @@ >> static int consumer_start( mlt_consumer consumer ) >> mlt_properties_set_data( properties, "acodec", codecs, 0, >> (mlt_destructor) mlt_properties_close, NULL ); >> mlt_properties_set_data( doc, "audio_codecs", codecs, 0, NULL, >> NULL ); while ( ( codec = av_codec_next( codec ) ) ) -#if >> LIBAVCODEC_VERSION_INT >= ((53<<16)+(34<<8)+0) +#if >> LIBAVCODEC_VERSION_INT >= ((54<<16)+(0<<8)+0) > >> ... > >> Here is a part of the e-mail from Brian explaining the >> rationale: > >> We chose to check for avcodec version 53.34.0 because that is >> when the encode2 field was added to libav. The problem is that >> libav and ffmpeg were not consistent with the libavcodec version >> when they released it. ffmpeg first released it in 0.10 with >> avcodec 53.60.100 while libav released it with 0.8 at 53.35.0. >> ffmpeg 0.9 was released without encode2 at 53.42.0 - which breaks >> because we look for encode2 and it isn't there. So... I recommend >> that we just switch to checking for 54.0.0 because that is when >> they both started actually using it. > >> --- > >> MLT is obviously affected by this libav/ffmpeg fork and their >> differences in versioning. A couple of months ago I looked for a >> way to differentiate the two at the time of pre-processing and >> only came up with something obscure and possibly unreliable: #if >> defined(FFUDIV). Besides, I really don't want to add a bunch to >> the ffmpeg vs. libav tests to the already numerous ifdefs. So, >> the general policy I have taken with MLT is to require a version >> where it exists in both. So, basically, no, FFmpeg 0.10.3 is not >> supported, but it already has a 0.11 branch, and it works with >> git head.
Thanks a lot for looking into it. Totally understandable that you don't want to add yet another ifdef. > > The issue seems to be present on Ubuntu with libav too: > http://www.kdenlive.org/forum/pcms16le-codec-not-found-even-though-it-there-fixed#comment-17620 > > >> Seems a different problem with that particular version of >> libavcodec indicating that pcm_s16le is usable for decoding only. >> Looks like the best solution is to patch it at the libav package >> level as suggested by sunab. > >>>> >>>>> >>>>> $ ffmpeg ffmpeg version 0.10.3 Copyright (c) 2000-2012 the >>>>> FFmpeg developers >>>> >>>> released May 6. Aggressive adoption of a volatile project >>>> like FFmpeg is bound to create problems. >>>> >>>>> built on May 9 2012 17:51:07 with gcc 4.7.0 20120505 >>>>> (prerelease) configuration: --prefix=/usr >>>>> --enable-libmp3lame --enable-libvorbis --enable-libxvid >>>>> --enable-libx264 --enable-libvpx --enable-libtheora >>>>> --enable-libgsm --enable-libspeex --enable-postproc >>>>> --enable-shared --enable-x11grab >>>>> --enable-libopencore_amrnb --enable-libopencore_amrwb >>>>> --enable-libschroedinger --enable-libopenjpeg >>>>> --enable-librtmp --enable-libpulse --enable-gpl >>>>> --enable-version3 --enable-runtime-cpudetect >>>>> --disable-debug --disable-static libavutil 51. 35.100 >>>>> / 51. 35.100 libavcodec 53. 61.100 / 53. 61.100 >>>>> libavformat 53. 32.100 / 53. 32.100 libavdevice 53. >>>>> 4.100 / 53. 4.100 libavfilter 2. 61.100 / 2. 61.100 >>>>> libswscale 2. 1.100 / 2. 1.100 libswresample 0. >>>>> 6.100 / 0. 6.100 libpostproc 52. 0.100 / 52. 0.100 >>>>> >>>>> $ ffmpeg -codecs | grep pcm_s16le DEA D pcm_s16le >>>>> PCM signed 16-bit little-endian >>>> >>>> $ melt -query audio_codecs | grep pcm_s16le - pcm_s16le >>>> >>>>> >>>>> This ffmpeg is from the repo although I usually compile my >>>>> own and rarely use the repo version. >>>> >>>> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iEYEARECAAYFAk/VEXMACgkQzwEyz7QP6nRSuwCcCP3EZXcodEWpZuAfdbARKDHC UgYAoKYov6PbaIyFyUDAJEQ0iru5Ulyn =bLIR -----END PGP SIGNATURE-----