Portál AbcLinuxu, 5. května 2025 15:07
$ ffmpeg -f alsa -i usbmic -f alsa -i looprec -filter_complex "[0:a]highpass=10,volume=20dB[0:a];[0:a][1:a]amerge=inputs=2[a]" -map "[a]" -ac 2 test.wav Guessed Channel Layout for Input Stream #0.0 : stereo Input #0, alsa, from 'usbmic': Duration: N/A, start: 1558195138.708653, bitrate: 1536 kb/s Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s Guessed Channel Layout for Input Stream #1.0 : stereo Input #1, alsa, from 'looprec': Duration: N/A, start: 1558195138.792802, bitrate: 1536 kb/s Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s Stream mapping: Stream #0:0 (pcm_s16le) -> amerge:in0 Stream #1:0 (pcm_s16le) -> amerge:in1 amerge -> Stream #0:0 (pcm_s16le) Press [q] to stop, [?] for help [Parsed_amerge_2 @ 0x55d4d2c80700] No channel layout for input 1 [Parsed_amerge_2 @ 0x55d4d2c80700] Input channel layouts overlap: output layout will be determined by the number of distinct input channels [Parsed_volume_1 @ 0x55d4d2c7f480] Cannot select sample rate for the link between filters Parsed_volume_1 and Parsed_highpass_0. Error reinitializing filters! Failed to inject frame into filter network: Invalid argument Error while processing the decoded data for stream #1:0 Conversion failed!Bude tam nejspíš zmatek s těma labels v hranatých závorkách. Bez těch filtrů highpass a volume to downmixuje hezky.
Řešení dotazu:
ffmpeg -f alsa -i usbmic -filter_complex "highpass=10,volume=20dB" -ac 2 test.wavfunguje jak má.
ffmpeg -f alsa -i usbmic -f alsa -i looprec -filter_complex "[0:a]highpass=10,volume=20dB[aout];[aout][1:a]amerge=inputs=2[a]" -map "[a]" -ac 2 test.wav
The following filters could not choose their formats: Parsed_amerge_2 Consider inserting the (a)format filter near their input or output.Moc rozumu z toho teda nemám.
Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/sAle budiž.
Celý ten příkaz je ale tak nechutně dlouhý, že jsem si to rači šoupnul do skriptu.
Co mě příjemně překvapilo, tak to vůbec není out-of-sync. Čekal jsem aspon 50-100 milisekund zpoždění u mikrofonu. V audacity musím mít nastaveno 130ms. Existuje vůbec nejaký commandline program na nahrávání karaoke? Toto by se na to dalo v klidu použít, když to nemá latence ..Při odesílání komentáře mi to píše: "Značka C0\+\C2\|\C1 není povolena!" (bez těch zpětných lomítek) Co to znamená? Nemůžu sem kvuli tomu dát ten funkční ffmpeg filtr
ffmpeg -f alsa -i usbmic -f alsa -i looprec -filter_complex "join=inputs=2:channel_layout=quad" output.wavA případné filtrování a downmix udělám ručně v audacity. Je to sice víc práce ale výsledek za to stojí.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.