Käyttäjä:Ninnnu/Screencasthowto

Kohteesta Linux.fi
Siirry navigaatioon Siirry hakuun

Screencast on nimitys oman työpöydän nauhoitukseta ja mahdollisesti live-lähettämisestä Internettiin, mikin kanssa tehdyllä selostuksella tai ilman. Tässä artikkelissa kuvataan live-lähetyksen pystytys käyttäen ffmpegiä, crtmpserveriä ja PulseAudiota. Katseluun voidaan käyttää esimerkiksi JW playeriä tai Flowplayeria. Kaikki seuraavat komennot on annettava komentorivillä.

Lähetys[muokkaa]

Lähetyskomento: ffmpeg -f x11grab -s 1280x1024 -r 30 -i :0.0+0,0 -f alsa -i pulse -vcodec libx264 -crf 20 -preset veryfast -minrate 150k -maxrate 500k -s 640x480 -vf "lutyuv=y=val*1.15" -acodec libmp3lame -ar 44100 -ab 128000 -threads 0 -f flv -metadata streamName="StriiminNimi" tcp://crtmpserverosoite:6666

Selitteet kohdille jotka voi vaatia muokkaamista (kursivoitu):

  • -f x11grab -s 1280x1024 - Kaapattavan lähteen resoluutio. Jos alue on pienempi kuin näytön resoluutio, kaapataan vasemmasta yläkulmasta sopivan kokoinen pala.
  • jälkimmäinen -s 640x480 - Lähetettävän kuvan resoluutio. Kaapattu kuva (määritelty edellisessä kohdassa) skaalataan tähän kokoon.
  • -vf "lutyuy=y=val*1.15" - Videofiltterit joilla lähetettävää kuvaa käsitellään. Tässä esimerkissä asetetaan gamma 1.15 kertaiseksi.
  • streamName="StriiminNimi" - Striimin nimi, määrittää myöhemmässä vaiheessa RTMP-osoitteen josta asiakkaiden JWPlayer/FlowPlayer hakee striimin.

Useampi äänilähde (PulseAudiolla)[muokkaa]

Jos haluat lähettää esimerkiksi pelin äänet oman selostuksen kanssa, sinun pitää yhdistää nämä äänilähteet PulseAudion kautta.

  1. Selvitä ensin äänilaitteiden nimet.
    1. Mikki: pactl | grep input, sieltä löytynee rivi jossa lukee "Nimi: alsa_input.pci-0000_00_14.2.analog-stereo", tämä on mikin laite. Jos äänikortteja on useampi, myös tämän kaltaisia rivejä on usaempi. Valitse sopiva.
    2. Ohjelmien äänet: pactl |grep monitor. Tulosteessa pitäisi olla rivi muotoa "Monitor Source: alsa_output.pci-0000_00_14.2.analog-stereo.monitor".
  2. Käynnistä pacmd
    1. Uuden tyhjän äänilähteen luominen ja laitteiden lisäys siihen:
load-module module-null-sink sink_name=mywiretap 
load-module module-loopback source=alsa_output.pci-0000_00_14.2.analog-stereo.monitor sink=mywiretap
load-module module-loopback source=alsa_input.pci-0000_00_14.2.analog-stereo sink=mywiretap
  1. Sulje pacmd esim. painamalla Ctrl+d
  2. (Asenna ja) Käynnistä pavucontrol.
    1. Valitse välilehti "Sisääntulolaitteet", sinne on ilmestynyt uusi laite nimeltä "mywiretap". Aseta se ensisijaiseksi klikkaamalla vihreää ympyrää.

Palvelin[muokkaa]

  1. Debian-pohjaisisten levitysversioiden pakettivarastosta löytyy paketti crtmpserver. Se kelpaa hyvin (tai ainakin Debian 6.0.7:n versio on toiminut). (sudo apt-get install crtmpserver)
  2. Valmis. Muuta konfiguroimista ei välttämättä tarvitsekkaan tehdä. Tärkeintä on vain varmistaa että tiedostossa /etc/crtmpserver/crtmpserver.lua (Ubuntussa /etc/crtmpserver/enabled_applications.conf) on flvplayback asetettuna käyttöön.

Katselusivu[muokkaa]

Tässä esimerkissä käytetään FlowPlayeria, mutta myös JWPlayer kelvannee.

  1. Hae FlowPlayer Flash osoitteesta http://flash.flowplayer.org/download/
  2. Hae sille kaveriksi RTMP-plugin täältä
  3. Muokkaa vaikka FlowPlayerin esimerkkisivua niin, että soittimen määrittely näyttää suunnilleen tältä:
<script>        
flowplayer("player", "flowplayer/flowplayer-3.2.15.swf", { 
   play:                   
   {                       
       opacity: 0.0,           
       label: null, // label text; by default there is no text
       replayLabel: null, // label text at end of video clip
   },                      
       clip: {url: 'StriiminNimi',
       live: true,         
       start: 0,           
       autoPlay: true,     
       provider: 'influxis',
   },                      
   canvas: {
       backgroundImage: 'url(image/offline.png)'
   },                      
   plugins: {              
       influxis: {             
           url: "flowplayer/flowplayer.rtmp-3.2.11.swf",
           netConnectionUrl: 'rtmp://crtmpserverinosoite/flvplayback/'
       }                       
   }                       
}                                          
);                                                         
</script>

Näytön kuva (ja äänet) pitäisi nyt rullata selaimessa.