[]

Linux terminalde background process olarak müzik çalma

Merhaba,
Linux terminalde "mplayer"da bir mp3 dosyası çalıyorum. Dosya bitene kadar terminale başka bir komut giremiyorum doğal olarak.
İstediğim şu, bir background process gibi bu dosya çalsın ki sonrasında gelen komutlar çalışmaya devam etsin.
Aslında amacım bir video playlist oynasın ekranda, arkaplanda ise bir müzik çalsın.
tilix ile iki terminal açarak senkron bir şekilde yapabiliyorum ama yeterince elegant görünmüyor.
tek bir bash script içine gömmek istiyorum bu komutları.
Yardımcı olabilecek biri var mı acaba?

 
Direkt nohup kullanabilirsin ilkini başlatıp arkaplana atmak için.

nohup play_mp3 & play_video

gibi gibi.

Ama daha uzun vadeli bi yatırım için tmux (veya screen de) öğrenebilirsin.
  • plutongezegendegilmi  (15.11.22 18:56:50 ~ 20:04:07) 
[]

BASH script ile random playlist oluşturma

Merhaba,
Şöyle bir sorunum var. Elimde birçok video dosyası var. Bu video dosyaları video001.MP4, video002.MP4, video003.MP4 …. şekline. Bu dosyaların yanında intro.MP4 ve outro.MP4 adında giriş-çıkış için kullanacağım 2 video dosyası da var.
Mpv adında video player kullanıyorum ve herhangi bir text dosyasını playlist olarak okuyabiliyor. Girdiyi şu şekilde istiyor;
Video001.MP4
Video002.MP4
….
Video045.MP4

Şimdi öyle bir BASH script istiyorum ki her çalıştırıldığında intro.MP4 dosyasını başa yazsın, ardından rastgele, belirlediğim miktarda video dosyasını altına eklesin ve son olarak outro dosyasını en sona yazsın ve bunu txt dosyası olarak kayıt etsin. Yani dosya içeriği şöyle olacak:

intro.MP4
Video002.MP4
Video013.MP4
Video008.MP4
….
outro.MP4

Bu konuda yardımcı olursanız çok sevinirim.

 
Linux kullanıyorsan (ki mpv kullanıyorsan muhtemelen öyledir:) shuf kullanabilirsin. Videoların bulunduğu klasörün adı "files" olsun mesela, bi üst directory'de:

ls files | shuf -n 10

Dersen, files klasöründen random 10 tane dosya adı döner sana.

Dosyaya yazmak için de:

echo "intro.MP4" && echo ls files | shuf -n 10 && echo "outro.MP4" >> myfile.txt
  • plutongezegendegilmi  (06.11.22 20:38:42 ~ 20:49:31) 
@plutongezegendegilmi, çok teşekkür ederim. kısmen başarılı oldum. şöyleki:
myfile.txt dosyasına yazabiliyorum ama dosya files klasörünün dışında olduğu için, videoplayer playlist dosyasındaki dosyaları üst klasörde arıyor. Dolayısıyla bulamadığı için videoları oynatamıyor. Ben de kulağı tersten tuttum biraz ama myfile.txt dosyasını "files" klasörünün içinde oluşturarak sorunu çözdüm. Tabii bu sefer myfile.txt dosyası da playliste eklendi ama bu şekilde çalışıyor. Intro ve outro dosyalarını da bir üst klasöre taşıdım.
Şöyle uzun bir komut silsilesi oldu.
touch myfile.txt && echo "../intro.m4v" >> myfile.txt && ls | shuf -n 10 >> myfile.txt && echo "../outro.m4v" >> myfile.txt

Çok teşekkür ederim tekrardan.
  • postnuka  (06.11.22 22:21:58) 
sed kullanarak text manipülasyonu yapabilirsiniz.

Misal shuffle'dan dönen her satırın başına "../" eklemek için:

echo ls files | shuf -n 10 | sed 's/^/..\//'

Veya işte benzer bi şekilde başa "./files" eklemek için:

sed 's/^/.\/files\//'
  • plutongezegendegilmi  (06.11.22 22:32:49 ~ 22:38:35) 
Harika oldu.
Bir bash script içine yerleştirdim hepsini. Şu şekilde oldu.
#!/bin/bash
echo "Create playlist"
touch myfile.txt && echo "intro.m4v" >> myfile.txt && ls files | shuf -n 10 | sed 's/^/.\/files\//' >> myfile.txt && echo "outro.m4v" >> myfile.txt
echo "Run mpv with the playlist"
mpv --fs --playlist=myfile.txt
echo "Delete playlist"
rm myfile.txt

Sonsuz teşekkürler.
  • postnuka  (06.11.22 23:02:47 ~ 23:21:25) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.