[FFmpeg-user] "This syntax is deprecated. Use '|' to separate the list items." (Was: What is the difference between versions of ffmpeg?)
Moritz Barsnick
barsnick at gmx.net
Sat Oct 4 22:11:10 CEST 2014
Hello KS (just to give you some name),
On Sat, Oct 04, 2014 at 20:56:30 +0200, skyscanner at gmx.ca wrote:
> 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"
I stumbled across that as well. For all I can tell, the filter syntax
for a list of parameters to a filter argument was changed and the
documentation for the pan filter never updated. Apparently, the eight
filters named in the source below require you to use '|' instead of
':'.
libavfilter/avfilter.c:
#if FF_API_OLD_FILTER_OPTS
if ( !strcmp(filter->filter->name, "format") ||
!strcmp(filter->filter->name, "noformat") ||
!strcmp(filter->filter->name, "frei0r") ||
!strcmp(filter->filter->name, "frei0r_src") ||
!strcmp(filter->filter->name, "ocv") ||
!strcmp(filter->filter->name, "pan") ||
!strcmp(filter->filter->name, "pp") ||
!strcmp(filter->filter->name, "aevalsrc")) {
/* a hack for compatibility with the old syntax
* replace colons with |s */
I believe your filter should be as such:
'[0:1][0:2][0:3]amerge=inputs=3,pan=5.1:FL=c0|FR=c1|FC=c2|LFE=c3|BL=c4|BR=c5'
because the first parameter is l=5.1, the second
outdef=FL=c0|FR=c1|FC=c2|LFE=c3|BL=c4|BR=c5, and the ':' separates
parameters.
Just guessing,
I might submit a patch,
Moritz
More information about the ffmpeg-user
mailing list