Il existe de nombreux lecteurs audio et vidéo, mais jaimerais utiliser un outil pour beaucoup proposer. Je voudrais donc utiliser ffplay comme lecteur audio et vidéo.

Pour lire un seul fichier, la commande est comme ceci.

 ffplay path_to_audio_file.mp3  

mais comment lire une liste de des fichiers audio ou une liste de vidéos?

Jai essayé dutiliser:

ffplay *.mp3 

mais sans succès, cela me donne une erreur comme celle-ci:

Argument "audiofileB.mp3" provided as input filename, but "audiofileA.mp3" was already specified. 

Réponse

ffplay semble ne prendre en charge quun seul fichier dentrée, vous devrez donc utiliser du code pour parcourir une liste de fichiers dentrée (et éventuellement pour les mélanger ); en supposant follement coreutils (pour shuf), peut-être quelque chose comme:

find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done 

Cela va bien sûr se casser terriblement sil y a des espaces ou des retours à la ligne dans les noms de fichiers.

(Mon lecteur de musique actuel est assez similaire, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -)

Commentaires

  • Jai essayé votre solution et ' est presque bien, mais … il y a quelques problèmes liés pour ffplay que je ' je ne sais pas si elles doivent être résolues dans cette question ou dans une autre. lun des problèmes est que ffplay ne mettra pas fin à la lecture de la chanson en cours et pour cette raison nira pas à la chanson suivante à la fin de lactuel jusquà ce que je nutilise pas la combinaison de touches CTRL + c.
  • @Scantlight the -autoexit semble pertinent pour ce problème.
  • -autoexit a résolu ce problème. Maintenant, jen ai un autre qui peut être résolu en utilisant -nodisp … cela désactivera la visualisation de la forme donde et des choses similaires. Cela évitera de créer une nouvelle fenêtre et de voler le focus de lapplication actuelle (cétait un comportement très ennuyeux). souhaitez-vous inclure cette option dans votre réponse, comme une option possible pour résoudre le comportement ennuyeux.

Réponse

Jai trouvé ce fil pendant que jécrivais une interface graphique FFplay dans Lazarus / FPC. Il pouvait déjà lire une liste de fichiers supprimés et passer au fichier suivant / précédent, mais je devais tuer le processus ffmpeg et en créer un nouveau à chaque fois. Jessayais dajouter la possibilité de lire toute une liste de fichiers. La solution de contournement la plus simple que jai trouvée pour le moment était bien sûr dutiliser -autoexit, et de créer un fichier de liste de lecture avec ce code 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; 

Ensuite, le lire de cette façon:

"ffplay -f concat -safe 0 -i flist.txt -autoexit" 

qui est la même syntaxe que jutilise pour concaténer des fichiers avec FFMPeg.

Je cherche maintenant un moyen approprié dajouter un délai si les fichiers sont des fichiers image…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *