Sok audio- és videolejátszó létezik, de sok javaslathoz egy eszközt szeretnék használni. Tehát a ffplay
-t szeretném használni audio- és videolejátszóként.
Egy fájl lejátszásához a parancs ilyen.
ffplay path_to_audio_file.mp3
de hogyan kell lejátszani egy listát audio fájlok vagy videók listája?
Megpróbáltam használni:
ffplay *.mp3
de sikertelenül egy ilyen hibát kapok:
Argument "audiofileB.mp3" provided as input filename, but "audiofileA.mp3" was already specified.
Válasz
ffplay
csak egyetlen bemeneti fájlt támogat, ezért kódot kell használnia a bemeneti fájlok listájának áthúzására (és esetleg azok keverésére) ); vadul feltételezve coreutils
(shuf
esetén), talán valami ilyesmi:
find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done
Ez természetesen borzasztóan megszakad, ha szóközök vagy új sorok vannak a fájlnevekben.
(A jelenlegi zenelejátszóm meglehetősen hasonló, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -
)
megjegyzések
Válasz
Ezt a szálat akkor találtam meg, amikor FFplay GUI-t írtam a Lazarus / FPC-ben. Ez már képes volt lejátszani egy elejtett fájllistát és ugrani a következő / előző fájlra, de meg kellett ölnöm az ffmpeg folyamatot, és minden alkalommal újat kellett létrehoznom. Megpróbáltam hozzáadni egy teljes fájllista lejátszásának képességét. A legegyszerűbb megoldás, amelyet pillanatnyilag találtam, természetesen az -autoexit használata volt, és ezzel a Pascal-kóddal készítettem egy lejátszási lista fájlt:
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;
Ezután olvasd el így:
"ffplay -f concat -safe 0 -i flist.txt -autoexit"
amely ugyanaz a szintaxis, amelyet a fájlok FFMPeg-el való összefűzéséhez használok.
Most megfelelő módot keresek a hozzáadásra késés, ha a fájlok képfájlok …
-autoexit
jelző relevánsnak tűnik a kérdés szempontjából.-autoexit
megoldotta ezt a problémát. Most van egy másikam, amelyet a-nodisp
használatával meg lehet oldani … ez letiltja a hullámforma és hasonló dolgok megjelenítését. Ezzel elkerülhető lesz egy új ablak létrehozása és a fókusz ellopása a jelenlegi működő alkalmazásból (ez nagyon idegesítő viselkedés volt). fel szeretné venni ezt a lehetőséget a válaszában, mint a bosszantó viselkedés megoldásának egyik lehetséges lehetőségét.