Există multe playere audio și video, dar aș dori să folosesc un instrument pentru multe propuneri. Aș vrea să folosesc ffplay
ca player audio și video.
Pentru a reda un fișier, comanda este așa.
ffplay path_to_audio_file.mp3
dar cum să redați o listă de fișiere audio sau o listă de videoclipuri?
Am încercat să folosesc:
ffplay *.mp3
dar fără succes, îmi dă o astfel de eroare:
Argument "audiofileB.mp3" provided as input filename, but "audiofileA.mp3" was already specified.
Răspuns
ffplay
pare să accepte doar un singur fișier de intrare, așa că va trebui să utilizați codul pentru a parcurge o listă de fișiere de intrare (și eventual pentru a le amesteca) ); presupunând în mod sălbatic coreutils
(pentru shuf
), poate ceva de genul:
find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done
Acest lucru se va sparge, desigur, dacă există spații sau linii noi în numele fișierelor.
(Playerul meu de muzică actual este destul de similar, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -
)
Comentarii
Răspuns
Am găsit acest fir în timp ce scriam un FFplay GUI în Lazarus / FPC. S-ar putea reda deja o listă de fișiere abandonate și să trec la fișierul următor / anterior, dar a trebuit să omit procesul ffmpeg și să creez unul nou de fiecare dată. Încercam să adaug posibilitatea de a reda o listă completă de fișiere. Cea mai simplă soluție pe care am găsit-o până acum a fost, desigur, folosirea -autoexit și crearea unui fișier de listă de redare cu acest cod Pascal:
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;
Citind-o astfel:
"ffplay -f concat -safe 0 -i flist.txt -autoexit"
care este aceeași sintaxă pe care o folosesc pentru concatenarea fișierelor cu FFMPeg.
Acum caut un mod corect de a adăuga o întârziere dacă fișierele sunt fișiere imagine …
-autoexit
pare relevant pentru problema respectivă.-autoexit
a rezolvat problema. Acum am un altul care poate fi rezolvat folosind-nodisp
… acest lucru va dezactiva vizualizarea formei de undă și a unor lucruri similare. Acest lucru va evita crearea unei ferestre noi și furarea focalizării din aplicația de lucru curentă (acesta a fost un comportament foarte enervant). doriți să includeți această opțiune în răspunsul dvs., ca o posibilă opțiune pentru a rezolva comportamentul enervant.