Re: [FFmpeg-user] firequalizer: What is multichannel evaluation?

2024-02-24 Thread Paul B Mahol
On Sat, Feb 24, 2024 at 9:48 PM Bernd Butscheidt via ffmpeg-user <
ffmpeg-user@ffmpeg.org> wrote:

> Hello,
>
> trying out some equalizer settings, I stepped over this part in the
> documentation of ffmpeg describing the firequalizer filter:
>
> "multi
> Enable multichannels evaluation on gain. Default is disabled"
>
> What is multichannels evaluation? And are the gain_entry settings applied
> to all channels with the default settings with multichannel sound? Like,
> e.g., when using the given example:
>
> firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6);
> entry(2000, 0)'
>


If you use multi option together with ch/chid in expressions you can have
different gains for each channel.


> ___
> ffmpeg-user mailing list
> ffmpeg-user@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
>
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-user] firequalizer: What is multichannel evaluation?

2024-02-24 Thread Bernd Butscheidt via ffmpeg-user
Hello,

trying out some equalizer settings, I stepped over this part in the 
documentation of ffmpeg describing the firequalizer filter:

"multi
    Enable multichannels evaluation on gain. Default is disabled"

What is multichannels evaluation? And are the gain_entry settings applied to 
all channels with the default settings with multichannel sound? Like, e.g., 
when using the given example:

firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); 
entry(2000, 0)'
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-user] How to create error log file ffmpeg Loudnorm?

2024-02-24 Thread Carl Zwanzig

On 2/24/2024 9:16 AM, CMG DiGiTaL wrote:

  [NULL @ 02738af86200] Unable to find a suitable output format for
'file=log.txt:level=16'
  file=log.txt:level=16: Invalid argument


"log.txt:level=16" is not a valid filename here (you're on windoze, I 
assume), you may need to escape the colon or the entire arg. And what are 
the *'s doing in that script?


Always start by posting the complete ffmpeg command and unedited output, 
that way we don't have to guess about what the script is doing.


z!
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-user] How to create error log file ffmpeg Loudnorm?

2024-02-24 Thread CMG DiGiTaL
hi,

I created a bat file where I enter the LUFS values to cover several audio
files in a folder.
However, I would like to generate an error log file.
I used the command -report file=log.txt:level=16.

see below the command in my bat file:

md "C:\Users\%username%\Desktop\Normalizing_lufs"
pushd "%Userprofile%\Desktop\áudios LUFS"
FOR /F "delims=" %%a in ('where .:*.mp3 ^|findstr /vi "_LOUDNORM  _EBU"')
DO (
  SET "filename=%%~na"
  ffmpeg -hide_banner -i "%%a" -af "[0:a]loudnorm=print_format=summary" -f
null NUL 2> "%%~na.log"
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input Integrated" "%%~na.log"')
DO (SET II=%%b)
  @FOR /F "tokens=4" %%b IN ('FINDSTR /C:"Input True Peak" "%%~na.log"') DO
(SET ITP=%%b)
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input LRA" "%%~na.log"') DO (SET
ILRA=%%b)
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Input Threshold" "%%~na.log"') DO
(SET IT=%%b)
  @FOR /F "tokens=3" %%b IN ('FINDSTR /C:"Target Offset" "%%~na.log"') DO
(SET TO=%%b)
  DEL "%%~na.log"
  SETLOCAL ENABLEDELAYEDEXPANSION
  REM ECHO !II!   Input Integrated
  REM ECHO !ITP!  Input True Peak
  REM ECHO !ILRA! Input LRA
  REM ECHO !IT!   Input Threshold
  REM ECHO !TO!   Target Offset
  FOR /F "tokens=1,2 delims=," %%b IN ('ffprobe -v 0 -select_streams a
-show_entries "stream=bit_rate,sample_rate" -of "csv=p=0"
"!filename!.mp3"') DO (
  ffmpeg -hide_banner *-report file=log.txt:level=16* -i "!filename!.mp3"
-af
"loudnorm=linear=true:I=!_vLUF!:LRA=11:tp=!_vPEAK!:measured_I=!II!:measured_LRA=!ILRA!:measured_tp=!ITP!:measured_thresh=!IT!:offset=!TO!:print_format=summary"
-c:v copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v
comment="Cover (front)" -acodec mp3 -b:a %%c -ar:a %%b
"C:\Users\%username%\Desktop\Normalizing_lufs\!filename!.mp3"
  )
  ENDLOCAL


and see the error below:

 Successfully opened the file.
 Parsing a group of options: output url file=log.txt:level=16.
 Successfully parsed a group of options.
 Opening an output file: file=log.txt:level=16.

 [NULL @ 02738af86200] Unable to find a suitable output format for
'file=log.txt:level=16'
 file=log.txt:level=16: Invalid argument


PS: The log files are generated, but the program cancels and does not
convert the audio files!
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-user] Wave channel split is very slow

2024-02-24 Thread Paul B Mahol
On Sat, Feb 24, 2024 at 3:26 PM Bouke / Videotoolshed <
bo...@videotoolshed.com> wrote:

> On 24 Feb 2024, at 12:37, Paul B Mahol  wrote:
> >
> > On Sat, Feb 24, 2024 at 11:33 AM Bouke / Videotoolshed <
> > bo...@videotoolshed.com> wrote:
> >
> >> Trying to split a 64 channel 48Khz 24 bits Wave file.
> >> That is VERY slow.
> >>
> >> ffmpeg -i /Volumes/Data/magweg/64channel.wav -filter_complex
> >> "[0]pan=mono|c0=c0[tr0]" -c:a pcm_s24le -map "[tr0]"
> >> /Volumes/Data/magweg/64_test/out_1.wav
> >>
> >> Runs at about 15x
> >>
> >> But if I do all 64 in one pass, it slows down to about 0.7x
> >>
> >> I don’t get it. DiskIO should not be a factor, and there is no math
> >> involved. (Granted, the ppm_s24le might involve math, but that should be
> >> simple.)
> >>
> >> Is this a bug?
> >> (Same happens vice versa, going from multiple non-interleaved to one big
> >> interleaved Wave.)
> >>
> >> Bouke
> >>
> >
> > For demuxing case, use -max_size 400 as input option for wav demuxer,
>
> Hi Paul,
>
> Yup, that helps. It now runs 64 channels at about 16x, that is about 20
> times faster than before!
>
> > order of this option matters.
>
> Where have I heard this before :-) (I won’t go there, no worries.)
>
>
> > Issue is if single packets have small number of stored samples it hurts
> > performance with ffmpeg utility, recently situation got even worse with
> > threading work.
> I trust you, but I don’t do C
> > I raised concerns and reported it to authorities multiple times without
> > results, but got responses that is not relevant but very minor problem.
>
> This IS a serious problem, same as stripping audio only from video has
> become dog slow.
> FFmbc used to be able to do that (with -c:a copy) at the speed of drive,
> FFmpeg nowadays seems to read the entire file, including video.
> >
> > Dunno what command you use for reverse direction so can not help you on
> > that one.
>
> My filter compex is HUGE, it splits all inputs to mono, pads / merges /
> etc. (I’m doing auto sequence style.)
> But for now, I’ve got something more to toy with.
>

I wanted to advise about using channelsplit filter instead of pan filter,
mostly because channelsplit filter is doing raw things with non-packed
sample formats and is not using swr library.
-lavfi "channelsplit=64C:all"  rest of maps

But it looks like packed->planar->packed is very slow here.




>
> Thanks,
> Bouke
>
> Better command line (way simplified) that indeed runs faster:
> /Applications/ffmpeg -max_size 400 -i
> /Volumes/Data/magweg/64_test/64chans.wav -max_size 400 -filter_complex
> "[0]pan=mono|c0=c0[tr0];[0]pan=mono|c0=c1[tr1];[0]pan=mono|c0=c2[tr2];[0]pan=mono|c0=c3[tr3];[0]pan=mono|c0=c4[tr4];[0]pan=mono|c0=c5[tr5];[0]pan=mono|c0=c6[tr6];[0]pan=mono|c0=c7[tr7];[0]pan=mono|c0=c8[tr8];[0]pan=mono|c0=c9[tr9];[0]pan=mono|c0=c10[tr10];[0]pan=mono|c0=c11[tr11];[0]pan=mono|c0=c12[tr12];[0]pan=mono|c0=c13[tr13];[0]pan=mono|c0=c14[tr14];[0]pan=mono|c0=c15[tr15];[0]pan=mono|c0=c16[tr16];[0]pan=mono|c0=c17[tr17];[0]pan=mono|c0=c18[tr18];[0]pan=mono|c0=c19[tr19];[0]pan=mono|c0=c20[tr20];[0]pan=mono|c0=c21[tr21];[0]pan=mono|c0=c22[tr22];[0]pan=mono|c0=c23[tr23];[0]pan=mono|c0=c24[tr24];[0]pan=mono|c0=c25[tr25];[0]pan=mono|c0=c26[tr26];[0]pan=mono|c0=c27[tr27];[0]pan=mono|c0=c28[tr28];[0]pan=mono|c0=c29[tr29];[0]pan=mono|c0=c30[tr30];[0]pan=mono|c0=c31[tr31];[0]pan=mono|c0=c32[tr32];[0]pan=mono|c0=c33[tr33];[0]pan=mono|c0=c34[tr34];[0]pan=mono|c0=c35[tr35];[0]pan=mono|c0=c36[tr36];[0]pan=mono|c0=c37[tr37];[0]pan=mono|c0=c38[tr38];[0]pan=mono|c0=c39[tr39];[0]pan=mono|c0=c40[tr40];[0]pan=mono|c0=c41[tr41];[0]pan=mono|c0=c42[tr42];[0]pan=mono|c0=c43[tr43];[0]pan=mono|c0=c44[tr44];[0]pan=mono|c0=c45[tr45];[0]pan=mono|c0=c46[tr46];[0]pan=mono|c0=c47[tr47];[0]pan=mono|c0=c48[tr48];[0]pan=mono|c0=c49[tr49];[0]pan=mono|c0=c50[tr50];[0]pan=mono|c0=c51[tr51];[0]pan=mono|c0=c52[tr52];[0]pan=mono|c0=c53[tr53];[0]pan=mono|c0=c54[tr54];[0]pan=mono|c0=c55[tr55];[0]pan=mono|c0=c56[tr56];[0]pan=mono|c0=c57[tr57];[0]pan=mono|c0=c58[tr58];[0]pan=mono|c0=c59[tr59];[0]pan=mono|c0=c60[tr60];[0]pan=mono|c0=c61[tr61];[0]pan=mono|c0=c62[tr62];[0]pan=mono|c0=c63[tr63]"
> -map_metadata -1 -c:a pcm_s24le -map "[tr0]"
> /Volumes/Data/magweg/64_test/speed_1.wav -y -map_metadata -1 -c:a pcm_s24le
> -map "[tr1]" /Volumes/Data/magweg/64_test/speed_2.wav -y -map_metadata -1
> -c:a pcm_s24le -map "[tr2]" /Volumes/Data/magweg/64_test/speed_3.wav -y
> -map_metadata -1 -c:a pcm_s24le -map "[tr3]"
> /Volumes/Data/magweg/64_test/speed_4.wav -y -map_metadata -1 -c:a pcm_s24le
> -map "[tr4]" /Volumes/Data/magweg/64_test/speed_5.wav -y -map_metadata -1
> -c:a pcm_s24le -map "[tr5]" /Volumes/Data/magweg/64_test/speed_6.wav -y
> -map_metadata -1 -c:a pcm_s24le -map "[tr6]"
> /Volumes/Data/magweg/64_test/speed_7.wav -y -map_metadata -1 -c:a pcm_s24le
> -map "[tr7]" /Volumes/Data/magweg/64_test/speed_8.wav -y -map_metadata -1
> -c:a pcm_s24le -map "[tr8]" /Volumes/Data/magweg/64_test/speed_9.wav -y

Re: [FFmpeg-user] Wave channel split is very slow

2024-02-24 Thread Bouke / Videotoolshed
On 24 Feb 2024, at 12:37, Paul B Mahol  wrote:
> 
> On Sat, Feb 24, 2024 at 11:33 AM Bouke / Videotoolshed <
> bo...@videotoolshed.com> wrote:
> 
>> Trying to split a 64 channel 48Khz 24 bits Wave file.
>> That is VERY slow.
>> 
>> ffmpeg -i /Volumes/Data/magweg/64channel.wav -filter_complex
>> "[0]pan=mono|c0=c0[tr0]" -c:a pcm_s24le -map "[tr0]"
>> /Volumes/Data/magweg/64_test/out_1.wav
>> 
>> Runs at about 15x
>> 
>> But if I do all 64 in one pass, it slows down to about 0.7x
>> 
>> I don’t get it. DiskIO should not be a factor, and there is no math
>> involved. (Granted, the ppm_s24le might involve math, but that should be
>> simple.)
>> 
>> Is this a bug?
>> (Same happens vice versa, going from multiple non-interleaved to one big
>> interleaved Wave.)
>> 
>> Bouke
>> 
> 
> For demuxing case, use -max_size 400 as input option for wav demuxer,

Hi Paul,

Yup, that helps. It now runs 64 channels at about 16x, that is about 20 times 
faster than before!

> order of this option matters.

Where have I heard this before :-) (I won’t go there, no worries.)


> Issue is if single packets have small number of stored samples it hurts
> performance with ffmpeg utility, recently situation got even worse with
> threading work.
I trust you, but I don’t do C
> I raised concerns and reported it to authorities multiple times without
> results, but got responses that is not relevant but very minor problem.

This IS a serious problem, same as stripping audio only from video has become 
dog slow.
FFmbc used to be able to do that (with -c:a copy) at the speed of drive, FFmpeg 
nowadays seems to read the entire file, including video.
> 
> Dunno what command you use for reverse direction so can not help you on
> that one.

My filter compex is HUGE, it splits all inputs to mono, pads / merges / etc. 
(I’m doing auto sequence style.)
But for now, I’ve got something more to toy with.

Thanks,
Bouke

Better command line (way simplified) that indeed runs faster:
/Applications/ffmpeg -max_size 400 -i 
/Volumes/Data/magweg/64_test/64chans.wav -max_size 400 -filter_complex 
"[0]pan=mono|c0=c0[tr0];[0]pan=mono|c0=c1[tr1];[0]pan=mono|c0=c2[tr2];[0]pan=mono|c0=c3[tr3];[0]pan=mono|c0=c4[tr4];[0]pan=mono|c0=c5[tr5];[0]pan=mono|c0=c6[tr6];[0]pan=mono|c0=c7[tr7];[0]pan=mono|c0=c8[tr8];[0]pan=mono|c0=c9[tr9];[0]pan=mono|c0=c10[tr10];[0]pan=mono|c0=c11[tr11];[0]pan=mono|c0=c12[tr12];[0]pan=mono|c0=c13[tr13];[0]pan=mono|c0=c14[tr14];[0]pan=mono|c0=c15[tr15];[0]pan=mono|c0=c16[tr16];[0]pan=mono|c0=c17[tr17];[0]pan=mono|c0=c18[tr18];[0]pan=mono|c0=c19[tr19];[0]pan=mono|c0=c20[tr20];[0]pan=mono|c0=c21[tr21];[0]pan=mono|c0=c22[tr22];[0]pan=mono|c0=c23[tr23];[0]pan=mono|c0=c24[tr24];[0]pan=mono|c0=c25[tr25];[0]pan=mono|c0=c26[tr26];[0]pan=mono|c0=c27[tr27];[0]pan=mono|c0=c28[tr28];[0]pan=mono|c0=c29[tr29];[0]pan=mono|c0=c30[tr30];[0]pan=mono|c0=c31[tr31];[0]pan=mono|c0=c32[tr32];[0]pan=mono|c0=c33[tr33];[0]pan=mono|c0=c34[tr34];[0]pan=mono|c0=c35[tr35];[0]pan=mono|c0=c36[tr36];[0]pan=mono|c0=c37[tr37];[0]pan=mono|c0=c38[tr38];[0]pan=mono|c0=c39[tr39];[0]pan=mono|c0=c40[tr40];[0]pan=mono|c0=c41[tr41];[0]pan=mono|c0=c42[tr42];[0]pan=mono|c0=c43[tr43];[0]pan=mono|c0=c44[tr44];[0]pan=mono|c0=c45[tr45];[0]pan=mono|c0=c46[tr46];[0]pan=mono|c0=c47[tr47];[0]pan=mono|c0=c48[tr48];[0]pan=mono|c0=c49[tr49];[0]pan=mono|c0=c50[tr50];[0]pan=mono|c0=c51[tr51];[0]pan=mono|c0=c52[tr52];[0]pan=mono|c0=c53[tr53];[0]pan=mono|c0=c54[tr54];[0]pan=mono|c0=c55[tr55];[0]pan=mono|c0=c56[tr56];[0]pan=mono|c0=c57[tr57];[0]pan=mono|c0=c58[tr58];[0]pan=mono|c0=c59[tr59];[0]pan=mono|c0=c60[tr60];[0]pan=mono|c0=c61[tr61];[0]pan=mono|c0=c62[tr62];[0]pan=mono|c0=c63[tr63]"
 -map_metadata -1 -c:a pcm_s24le -map "[tr0]" 
/Volumes/Data/magweg/64_test/speed_1.wav -y -map_metadata -1 -c:a pcm_s24le 
-map "[tr1]" /Volumes/Data/magweg/64_test/speed_2.wav -y -map_metadata -1 -c:a 
pcm_s24le -map "[tr2]" /Volumes/Data/magweg/64_test/speed_3.wav -y 
-map_metadata -1 -c:a pcm_s24le -map "[tr3]" 
/Volumes/Data/magweg/64_test/speed_4.wav -y -map_metadata -1 -c:a pcm_s24le 
-map "[tr4]" /Volumes/Data/magweg/64_test/speed_5.wav -y -map_metadata -1 -c:a 
pcm_s24le -map "[tr5]" /Volumes/Data/magweg/64_test/speed_6.wav -y 
-map_metadata -1 -c:a pcm_s24le -map "[tr6]" 
/Volumes/Data/magweg/64_test/speed_7.wav -y -map_metadata -1 -c:a pcm_s24le 
-map "[tr7]" /Volumes/Data/magweg/64_test/speed_8.wav -y -map_metadata -1 -c:a 
pcm_s24le -map "[tr8]" /Volumes/Data/magweg/64_test/speed_9.wav -y 
-map_metadata -1 -c:a pcm_s24le -map "[tr9]" 
/Volumes/Data/magweg/64_test/speed_10.wav -y -map_metadata -1 -c:a pcm_s24le 
-map "[tr10]" /Volumes/Data/magweg/64_test/speed_11.wav -y -map_metadata -1 
-c:a pcm_s24le -map "[tr11]" /Volumes/Data/magweg/64_test/speed_12.wav -y 
-map_metadata -1 -c:a pcm_s24le -map "[tr12]" 
/Volumes/Data/magweg/64_test/speed_13.wav -y -map_metadata -1 -c:a pcm_s24le 
-map "[tr13]" /Volumes/Data/magweg/64_test/speed_14.wav -y -map_metadata -1 
-c:a pcm_s24le -map "[tr14]" /

Re: [FFmpeg-user] Wave channel split is very slow

2024-02-24 Thread Paul B Mahol
On Sat, Feb 24, 2024 at 11:33 AM Bouke / Videotoolshed <
bo...@videotoolshed.com> wrote:

> Trying to split a 64 channel 48Khz 24 bits Wave file.
> That is VERY slow.
>
> ffmpeg -i /Volumes/Data/magweg/64channel.wav -filter_complex
> "[0]pan=mono|c0=c0[tr0]" -c:a pcm_s24le -map "[tr0]"
> /Volumes/Data/magweg/64_test/out_1.wav
>
> Runs at about 15x
>
> But if I do all 64 in one pass, it slows down to about 0.7x
>
> I don’t get it. DiskIO should not be a factor, and there is no math
> involved. (Granted, the ppm_s24le might involve math, but that should be
> simple.)
>
> Is this a bug?
> (Same happens vice versa, going from multiple non-interleaved to one big
> interleaved Wave.)
>
> Bouke
>

For demuxing case, use -max_size 400 as input option for wav demuxer,
order of this option matters.
Issue is if single packets have small number of stored samples it hurts
performance with ffmpeg utility, recently situation got even worse with
threading work.
I raised concerns and reported it to authorities multiple times without
results, but got responses that is not relevant but very minor problem.

Dunno what command you use for reverse direction so can not help you on
that one.


>
> ___
> ffmpeg-user mailing list
> ffmpeg-user@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
>
___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-user] Wave channel split is very slow

2024-02-24 Thread Bouke / Videotoolshed
Trying to split a 64 channel 48Khz 24 bits Wave file.
That is VERY slow.

ffmpeg -i /Volumes/Data/magweg/64channel.wav -filter_complex 
"[0]pan=mono|c0=c0[tr0]" -c:a pcm_s24le -map "[tr0]" 
/Volumes/Data/magweg/64_test/out_1.wav

Runs at about 15x

But if I do all 64 in one pass, it slows down to about 0.7x

I don’t get it. DiskIO should not be a factor, and there is no math involved. 
(Granted, the ppm_s24le might involve math, but that should be simple.)

Is this a bug? 
(Same happens vice versa, going from multiple non-interleaved to one big 
interleaved Wave.)

Bouke

___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".