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
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 …
-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.