Kan MCEBuddy behandle en lydstrøm og derefter behandle outputtet af den proces igen?

Grunden til, at jeg spørger, er, at nogle ting skal gøres i trin. Størstedelen af min lyd i optagede film er AC3 5.1, så jeg nedprøver det til stereo AAC og kopierer derefter alle lydsporene uændret med følgende indstillinger:

ffmpeg-audioac3=-map 0:1 -map 0:1 -map 0:2 -c:a:0 aac -ab 384k -ac 2 -c:a:1 copy -c:a:2 copy

Problemet opstår, fordi jeg også ønsker at bruge dynamisk komprimering på den samme AAC-stereospor, men sådanne processer bør først anvendes, efter filen er blevet nedprøvet til stereo … deraf mit dilemma. Jeg skal anvende følgende i ffmpeg:

-af dynaudnorm=f=150

på stereo-AAC-sporet EFTER at MCEBuddy har oprettet det, men jeg ved ikke, om MCEBuddy kan det, og hvis den kan, er jeg ikke sikker på hvordan.

Ethvert indblik ville være meget værdsat

Opret 2 konverteringsopgaver med forskellige profiler og prøv at kæde konverteringerne sammen som forklaret her, hvor outputtet fra én konvertering fodres ind i den næste

Så hvis jeg forstår det rigtigt, er én måde at gøre det på, at lade mit nuværende setup køre som det er, og derefter lægge de færdige MKV-filer tilbage i MCEBuddy og køre dem som MKV Unprocessed – men med den første lydstream, som nu er en 2-kanals AAC, modificeret med dynamisk omrækkekompression?

At bruge overvågede mapper skaber for mange problemer. For mig ville det være nemmere bare at lægge filerne tilbage i MCEBuddy med MKV Unprocessed-profilen tilpasset til kun at ændre lyden og slette kildefilerne, når det er færdigt. Jeg kører 40 eller flere konverteringer ad gangen, og jeg vil ikke have overvågede mapper til at fylde køen, for uanset hvad du siger, bliver alle filer tilføjet i begyndelsen af køen, og jeg har aldrig kunnet få det til at stoppe.

Jeg tænker, at det måske er muligt at bruge de brugerdefinerede kommandoer i en profil til dette. Jeg er ikke helt sikker på, hvordan det skulle se ud endnu, eller i hvilken rækkefølge det skal være, men lad mig bruge noget tid på at undersøge det og vende tilbage til dig.

Okay, her er hvad jeg er kommet frem til. DISCLAIMER: Jeg kunne ikke teste dette, og mine ffmpeg-kundskaber er bedemålsagtige i bedste fald. Men det kan være et godt udgangspunkt for at andre kan byde ind og hjælpe.

Tilføj dette til den profil, du ønsker at normalisere stereo-lyden på.

CustomCommandPath=C:\Windows\System32\cmd.exe
CustomCommandParameters="/c ren "%convertedfile%" %convertedfilename%-1.%convertedext% & "C:\Program Files\MCEBuddy2x\ffmpeg\ffmpeg.exe" -i "%workingpath%\%convertedfilename%-1.%convertedext% -map 0:v -c:v copy -map 0:1 -map 0:2 -map 0:3 -af dynaudnorm=f=150 -c:a:1 copy -c:a:2 copy "%convertedfile%" & del "%workingpath%\%convertedfilename%-1.%convertedext%""
CustomCommandHangPeriod=3600
CustomCommandCritical=false
CustomCommandUISession=false
CustomCommandShowWindow=false
CustomCommandExitCodeCheck=false

Grundlæggende burde dette virke således: efter at filen er konverteret, men før den flyttes til destinationsmappen, køres CMD med de angivne parametre. Lad os skille parametrene ad:

/c

Kør kommandoprompt og afslut når færdig. Bare rolig for denne.

ren “%convertedfile%” %convertedfilename%-1.%convertedext%

Dette omdøber den konverterede fil på dens nuværende placering (da vi bruger CustomCommand, vil det være i arbejdsmappen) ved at tilføje -1 til navnet. Vi omdøber, så vores nye fil kan få det rigtige navn, når vi er færdige med de tilpassede kommandoer, og MCEBuddy tager over igen.

&

Dette betyder i praksis “ny kommando”. Bare rolig for den. Hvis du vil køre flere kommandoer, adskil dem med &.

“C:\Program Files\MCEBuddy2x\ffmpeg\ffmpeg.exe” -i “%workingpath%%convertedfilename%-1.%convertedext% -map 0:v -c:v copy -map 0:1 -map 0:2 -map 0:3 -af dynaudnorm=f=150 -c:a:1 copy -c:a:2 copy “%convertedfile%””

Den egentlige magi sker her; hvis der skal justeres, skal det ske her. Dette burde kopiere videoen uændret, normalisere det første lydspor og kopiere de resterende to lydspor uændret.

del “%workingpath%%convertedfilename%-1.%convertedext%”

Sletter den oprindelige fil, vi omdøbte i første kommando. Bare lidt oprydning.

Mange tak…jeg beklager, at det tog mig så lang tid at se dette og teste det, men jeg gjorde det lige på en kort 5-minutters testprøve, jeg bruger til at teste profiler, og de brugerdefinerede kommandoer kørte. Nu er mit eneste spørgsmål, hvordan kan jeg verificere, at den dynamiske rækkeviddekompression fandt sted? Åh vent…jeg kan udtrække lyden fra både kilde- og den konverterede fil og sammenligne dem i en lydeditor.

EDIT…jeg vil tjekke det i en lydeditor, når jeg får tid, men bare ved at lytte til originalen og den konverterede kan jeg høre en forskel i lydeffekterne, der ikke er så dominerende, men stadig lidt højere, så det ser ud til at være det, jeg ledte efter…TAK!

Det er fantastisk! Altid glad for at hjælpe.

Nu er det eneste, jeg skal finde ud af for at gøre dette perfekt, om jeg kan bruge ffprobe til først at analysere lydfilen og derefter lade den vælge parametrene for både dynamisk kompressionsområde og normalisering (så alle shows/film har den samme standardvolumen), så hvis du har nogen ideer, ville ethvert input være værdsat.

Lad mig lege lidt med nogle ting og vende tilbage til dig.

Jeg har eksperimenteret med forskellige metoder til dette, men ingen af dem er særligt pålidelige. Og på grund af en brugerfejl slettede jeg de profiler, jeg brugte til test, så jeg kan ikke engang give dig eksempler. Og på en eller anden måde slettede jeg også alle mine logs.

Der er et par forskellige arbejdsgange, jeg prøvede. At bruge precustomcommand til at udtrække lyden separat som stereo og bruge en batchfil til at behandle den til normalisering ved hjælp af ffprobe, sende variablerne som argumenter, køre den gennem normal MCEBuddy-behandling minus det stereo-spor og derefter i customcommand sætte det ind igen. Dette virkede cirka 10 % af tiden.

Jeg prøvede også at udtrække lydsporet i precustomcommand som det er, behandle videoen gennem MCEBuddy som kun stereo med Volume leveling-tilvalget aktiveret og derefter indsætte surround-sporene igen. Dette virkede oftest, men jeg er ikke sikker på, om det giver den normalisering, du ønsker.

Derefter prøvede jeg også bare at bruge ingen customcommands og behandle med Volume leveling-tilvalget slået til, hvilket virkede 100 % af tiden, men igen, jeg er ikke sikker på, om det giver det ønskede resultat.

Hvis jeg kan finde mere fritid, vil jeg eksperimentere mere, men jeg starter snart et nyt job og vil sandsynligvis ikke kunne gøre det i et stykke tid.

Mange tak for indsatsen. Jeg håber, at min ven vil give mig den metode, han bruger i ffmpeg, men han er besværlig, da han vil have mig til at bruge Sickbeard-scriptet i stedet, men han har ikke tid til at lære mig, hvordan man bruger det.

Hvis jeg får oplysningerne fra ham, burde det blot være et spørgsmål om at bruge en tilpasset kommando som modificering af den, du allerede har givet.

Tak igen.

Jeg fandt en måde at forenkle dette uden først at skulle foretage nogen analyse. Jeg fandt følgende kommando og indstillinger til brug i ffmpeg, og der ser ud til at være enighed om, at dette er den indstilling, der skal bruges:

-af loudnorm=I=-16:LRA=11:TP=-1.5

Dette vil udføre normaliseringen. Jeg antager, at vi først skal udføre komprimeringen af det dynamiske område og derefter anvende dette, så basically er der en måde at køre outputtet af den brugerdefinerede kommando, du oprettede ovenfor til komprimering af det dynamiske område, gennem en anden brugerdefineret kommando, der anvender denne kommando? Medmindre der er en bedre måde at gøre det på, ved jeg, at jeg ingen idé har.

Jeg prøvede selv at lege med det, men jeg kunne ikke sætte de to kommandoer sammen i en kæde, så det virkede ordentligt. Jeg går tabt i syntaksen. Jeg er ikke programmør…LOL

Noget i denne retning.

CustomCommandParameters="/c ren “%convertedfile%” %convertedfilename%-1.%convertedext% & “C:\Program Files\MCEBuddy2x\ffmpeg\ffmpeg.exe” -i “%workingpath%%convertedfilename%-1.%convertedext% -map 0:v -c:v copy -map 0:1 -map 0:2 -map 0:3 -af dynaudnorm=f=150 -c:a:1 copy -c:a:2 copy “%workingpath%%convertedfilename%-2.%convertedext%” & del “%workingpath%%convertedfilename%-1.%convertedext%” & “C:\Program Files\MCEBuddy2x\ffmpeg\ffmpeg.exe” -i “%workingpath%%convertedfilename%-2.%convertedext%” -map 0:v -c:v copy -map 0:1 -map 0:2 -map 0:3 -af loudnorm=I=-16:LRA=11:TP=-1.5 -c:a:1 copy -c:a:2 copy “%convertedfile%” & del “%workingpath%%convertedfilename%-2.%convertedext%””

Fantastisk, tak, jeg ved, du har travlt. Jeg vil prøve det senere i dag eller i aften og give dig besked. Jeg sætter det pris.