Der er mange lyd- og videoafspillere, men jeg vil gerne bruge et værktøj, som mange foreslår. Så jeg vil gerne bruge ffplay
som lyd- og videoafspiller.
For at afspille en fil er kommandoen sådan.
ffplay path_to_audio_file.mp3
men hvordan man spiller en liste over lydfiler eller en liste over videoer?
Jeg forsøgte at bruge:
ffplay *.mp3
men uden succes giver det mig en fejl som denne:
Argument "audiofileB.mp3" provided as input filename, but "audiofileA.mp3" was already specified.
Svar
ffplay
ser ud til kun at understøtte en enkelt inputfil, så du bliver nødt til at bruge kode til at løbe en liste over inputfiler (og muligvis at blande dem ); antager vildt coreutils
(for shuf
), måske noget som:
find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done
Dette bryder naturligvis forfærdeligt, hvis der er mellemrum eller nye linjer i filnavne.
(Min nuværende musikafspiller er ret ens, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -
)
Kommentarer
Svar
Jeg fandt denne tråd, mens jeg skrev en FFplay GUI i Lazarus / FPC. Det kunne allerede afspille en droppet filliste og springe til næste / forrige fil, men jeg var nødt til at dræbe ffmpeg-processen og oprette en ny hver gang. Jeg forsøgte at tilføje muligheden for at afspille en hel filliste. Den enkleste løsning, jeg fandt i øjeblikket, var selvfølgelig at bruge -autoexit og oprette en playlistefil med denne Pascal-kode:
begin AssignFile(tfOut, C_FNAME); try rewrite(tfOut); for i:= 0 to Fichiers.Items.Count - 1 do if Fichiers.Selected[i] then begin writeln(tfOut, "file " + #39 + conv(Fichiers.Items[i]) + #39) end; CloseFile(tfOut); except on E: EInOutError do ShowMessage ("File error") end; end;
Derefter læser du den på denne måde:
"ffplay -f concat -safe 0 -i flist.txt -autoexit"
hvilket er den samme syntaks, som jeg bruger til sammenkædning af filer med FFMPeg.
Jeg søger nu efter en korrekt måde at tilføje på en forsinkelse, hvis filer er billedfiler …
-autoexit
flag synes relevant for dette problem.-autoexit
løste problemet. Nu har jeg en anden, som kan løses ved hjælp af-nodisp
… dette vil deaktivere visualisering af bølgeform og lignende ting. Dette undgår at oprette et nyt vindue og stjæle fokus fra den aktuelle arbejdsapplikation (dette var meget irriterende adfærd). vil du medtage denne mulighed i dit svar som en mulig mulighed for at løse den irriterende opførsel.