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

  • Am încercat soluția dvs. și ' este aproape bună, dar … există unele probleme legate de to ffplay care nu ' nu sunt sigur dacă ar trebui rezolvate în această întrebare sau în alta. una dintre probleme este că ffplay-ul nu se va termina cu redarea melodiei curente și din acest motiv nu va merge la melodia următoare la sfârșitul curentului până nu voi folosi combinația de tastatură CTRL + c.
  • @Scantlight the -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.

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 …

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *