Det er mange lyd- og videospillere, men jeg vil gjerne bruke ett verktøy for mange foreslår. Så jeg vil gjerne bruke ffplay som lyd- og videospiller.

For å spille en fil er kommandoen slik.

 ffplay path_to_audio_file.mp3  

men hvordan du spiller en liste over lydfiler eller en liste over videoer?

Jeg prøvde å bruke:

ffplay *.mp3 

men uten suksess gir det meg en feil som dette:

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

Svar

ffplay ser ut til å bare støtte en enkelt inndatafil, så du må bruke kode for å løpe over en liste med inndatafiler (og muligens for å blande ); antar coreutils (for shuf), kanskje noe sånt som:

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

Dette vil selvfølgelig bryte fryktelig hvis det er mellomrom eller nye linjer i filnavnene.

(Min nåværende musikkspiller er ganske lik, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -)

Kommentarer

  • Jeg prøvde deg løsningen og den ' er nesten bra, men … det er noen problemer relatert å ffplay som jeg ' ikke er sikker på om de skal løses i dette spørsmålet eller i et annet. et av problemene er at ffplay ikke slutter å spille av nåværende sang og av denne grunn ikke vil gå til neste sang på slutten av gjeldende inntil jeg ikke vil bruke CTRL + c keyboardkombinasjon.
  • @Scantlight the -autoexit flagg virker relevant for det problemet.
  • -autoexit løste problemet. Nå har jeg en annen som kan løses ved å bruke -nodisp … dette vil deaktivere visualisering av bølgeform og lignende. Dette vil unngå å skape et nytt vindu og stjele fokus fra gjeldende arbeidsapplikasjon (dette var veldig irriterende oppførsel). vil du inkludere dette alternativet i svaret ditt, som et mulig alternativ for å løse den irriterende oppførselen.

Svar

Jeg fant denne tråden mens jeg skrev en FFplay GUI i Lazarus / FPC. Det kunne allerede spille en droppet filliste og hoppe til neste / forrige fil, men jeg måtte drepe ffmpeg-prosessen og opprette en ny hver gang. Jeg prøvde å legge til muligheten til å spille av en hel filliste. Den enkleste løsningen jeg fant for øyeblikket var selvfølgelig å bruke -autoexit, og lage en spillelistefil med denne Pascal-koden:

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; 

Deretter leser du den på denne måten:

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

som er den samme syntaksen jeg bruker for sammenkobling av filer med FFMPeg.

Jeg søker nå etter en riktig måte å legge til en forsinkelse hvis filene er bildefiler …

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *