ffmpeg / mencoder concatenate - hjälp!

Permalänk
Medlem

ffmpeg / mencoder concatenate - hjälp!

Jag har totalt ungefär 1500 ljudfiler och 1500 bilder. Filerna är indelade i 15 mappar med omkring 200 filer i varje. Filerna är namngivna "bild1.png" - "bild100.png" och samma sak med ljudfilerna, dvs varje bild har en matchande ljudfil.

Med ffmpeg sätter jag samman Bild1.png med ljud1.wav för att bilda en avi-fil. Filmens längd bestäms av ljudfilens längd.

Så långt har jag kommit, jag kan via ffmpeg snabbt få ut "result1.avi [...] result100.avi". Nu uppstår dock ett problem, antalet avi-filer i varje mapp varierar. Det kan alltså finnas upp till result87.avi i en mapp och upp till result127.avi i en annan.

När jag kör mencoder för att sätta samman dessa filmfiler med exempelvis:

mencoder -oac copy -ovc copy -forceidx result1.avi result2.avi -o export.avi

Då kan jag ju inte veta på förhand hur många "resultX.avi" det finns i mappen, åtminstone inte på något sätt som jag kan komma på. Om jag kör något riktigt ghetto-hack där jag bara lägger in filnamn även om filerna inte existerar, då blir den resulterande export.avi oläslig.

Målet är alltså att jag vill kunna köra igång en batfil som:
a) Sätter samman bilderna och ljudet så att jag får en film för varje "par" - detta är redan fixat
b) Därefter sätter den samman alla filmer till en lång film - här har jag fastnat.
c) Encode'ar den långa filmen i rätt codec (detta ordnar jag lätt)

Sitter i windows och petar med detta.

Permalänk
Inaktiv

Hm.. Det är ju för sådana här saker som GNU & Bash är skitbra. Om du har lust att sätta upp ett MinGW MSys eller Cygwin shell så kan du köra något liknande:

ls -1 ./mapp/result*.avi | wc -l

För att räkna ut hur många filer "resultX.avi" som finns i ./mapp/. Ta bort "| wc -l" om du även vill lista alla filer.

Är inte cygwin ett alternativ så hittade jag detta syntax:

(Get-ChildItem .\Mapp\).Count

för att se hur många filer som ligger i mappen. Dock inte high alls på powerscript men läs på om det!