Er zijn veel audio- en videospelers, maar ik zou graag één tool willen gebruiken voor veel voorstellen. Dus ik zou ffplay willen gebruiken als audio- en videospeler.

Om een enkel bestand af te spelen is het commando als volgt.

 ffplay path_to_audio_file.mp3  

maar hoe je een lijst met audiobestanden of een lijst met videos?

Ik probeerde te gebruiken:

ffplay *.mp3 

maar zonder succes, het geeft me een fout als deze:

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

Antwoord

ffplay lijkt slechts één invoerbestand te ondersteunen, dus je zult code moeten gebruiken om een lijst met invoerbestanden te doorlopen (en mogelijk ); in de veronderstelling dat coreutils (voor shuf), misschien zoiets als:

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

Dit zal natuurlijk vreselijk breken als er spaties of nieuwe regels in de bestandsnamen staan.

(Mijn huidige muziekspeler is redelijk vergelijkbaar, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -)

Reacties

  • Ik heb je oplossing geprobeerd en deze ' is bijna goed, maar … er zijn enkele problemen gerelateerd naar ffplay waarvan ik ' niet zeker weet of ze in deze vraag of in een andere moeten worden opgelost. een van de problemen is dat ffplay het afspelen van het huidige nummer niet zal beëindigen en om deze reden niet naar het volgende nummer aan het einde van het huidige nummer zal gaan totdat ik geen CTRL + c toetsenbordcombinatie zal gebruiken.
  • @Scantlight de -autoexit vlag lijkt relevant voor dat probleem.
  • -autoexit loste dat probleem op. Nu heb ik een andere die kan worden opgelost door -nodisp te gebruiken … dit zal de visualisatie van golfvormen en dergelijke uitschakelen. Hiermee wordt voorkomen dat er een nieuw venster wordt gemaakt en de focus van de huidige werkende applicatie wordt gestolen (dit was erg irritant gedrag). zou je deze optie in je antwoord willen opnemen, als een mogelijke optie om het vervelende gedrag op te lossen.

Antwoord

Ik vond deze thread terwijl ik een FFplay GUI aan het schrijven was in Lazarus / FPC. Het kon al een verwijderde bestandenlijst afspelen en naar het volgende / vorige bestand gaan, maar ik moest het ffmpeg-proces beëindigen en elke keer een nieuwe maken. Ik probeerde de mogelijkheid toe te voegen om een hele lijst met bestanden af te spelen. De eenvoudigste oplossing die ik tot nu toe vond, was natuurlijk het gebruik van -autoexit, en het maken van een afspeellijstbestand met deze Pascal-code:

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; 

Lees het dan op deze manier:

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

wat dezelfde syntaxis is die ik gebruik voor het samenvoegen van bestanden met FFMPeg.

Ik ben nu op zoek naar een goede manier om toe te voegen een vertraging als bestanden afbeeldingsbestanden zijn …

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *