Ääni- ja videosoittimia on paljon, mutta haluaisin käyttää yhtä työkalua monien ehdotusten tekemiseksi. Joten haluaisin käyttää ffplay ääni- ja videosoittimena.

Yhden tiedoston toistamiseen komento on tällainen.

 ffplay path_to_audio_file.mp3  

mutta kuinka pelata luetteloa äänitiedostot tai videoluettelo?

Yritin käyttää:

ffplay *.mp3 

mutta ilman menestystä, se antaa minulle seuraavanlaisen virheen:

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

Vastaa

ffplay näyttää tukevan vain yhtä syötetiedostoa, joten sinun on käytettävä koodia siirtyäksesi syötetiedostojen luetteloon (ja mahdollisesti sekoittamaan niitä) ); villisti olettaen, että coreutils (shuf), ehkä jotain:

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

Tämä tietysti katkeaa kauheasti, jos tiedostonimissä on välilyöntejä tai uusia viivoja.

(Nykyinen soittimeni on melko samanlainen, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -)

Kommentit

  • Yritin sinulle ratkaisua ja se ' on melkein hyvä, mutta … siihen liittyy joitain ongelmia ffplay: hen, josta en ' ole varma, pitäisikö ne ratkaista tässä tai toisessa kysymyksessä. yksi ongelmista on, että ffplay ei lopeta nykyisen kappaleen toistamista eikä tästä syystä siirry seuraavaan kappaleeseen nykyisen lopussa, kunnes en käytä CTRL + c-näppäimistöyhdistelmää.
  • @Scantlight -autoexit -lippu näyttää olevan asian kannalta merkityksellinen.
  • -autoexit ratkaisi ongelman. Nyt minulla on toinen, joka voidaan ratkaista käyttämällä -nodisp … tämä poistaa aaltomuodon ja vastaavien kohteiden visualisoinnin käytöstä. Näin vältetään uuden ikkunan luominen ja varastamisen keskittyminen nykyisestä toimivasta sovelluksesta (tämä oli hyvin ärsyttävää käyttäytymistä). haluatko sisällyttää tämän vaihtoehdon vastaukseesi mahdollisena vaihtoehtona ärsyttävän käyttäytymisen ratkaisemiseksi.

Vastaa

Löysin tämän ketjun kirjoittaessani FFplay-käyttöliittymää Lazarus / FPC: ssä. Se pystyi jo toistamaan pudotetun tiedostoluettelon ja siirtymään seuraavaan / edelliseen tiedostoon, mutta minun piti tappaa ffmpeg-prosessi ja luoda uusi joka kerta. Yritin lisätä kykyä toistaa koko tiedostoluettelo. Yksinkertaisin ratkaisu, jonka löysin tällä hetkellä, oli tietysti -autoexit ja soittolistatiedoston luominen tällä Pascal-koodilla:

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; 

Luen sen sitten tällä tavalla:

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

joka on sama syntaksi, jota käytän tiedostojen ketjutukseen FFMPeg: llä.

Etsin nyt oikeaa tapaa lisätä viive, jos tiedostot ovat kuvatiedostoja …

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *