Screencast live sotto Linux


4

Ho avuto qualche difficoltà con l'esecuzione di uno Screencast live su Linux. Ho trovato jtvlc e ho provato a usarlo, ma ogni volta che lo uso il flusso esce vuoto o ritardato con latenza estremamente alta. Ho una connessione Internet veloce e un computer veloce, ma forse sto tassando troppo?

Qualche idea su cosa potrei fare di sbagliato?

# 1. Get an account on http://www.justin.tv/
# 2. Copy streaming key from: http://www.justin.tv/broadcast/adv_other
# 2. Install VLC: http://www.videolan.org/vlc/
# 3. Get Win/Mac/Lin Stream Client: \
# http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
# 4. Adjust the vlc parameters to your liking and run VLC like this

#!/bin/bash
cvlc screen:// --input-slave=pulse:// \
    --screen-width 1920 \
    --screen-height 1080 \
    --screen-fps 5 \
    -v input_stream \
    --sout='#duplicate{ dst="transcode{ scale=1, venc=x264{ keyint=60 }, vcodec=h264, vb=600, acodec=mp4a, ab=32, channels=2, samplerate=22050 } :rtp{dst=127.0.0.1,port=1234,sdp=file:///tmp/vlc.sdp} "}' \
    --sout-transcode-threads=4 & sleep 2

# 5. Run JTVLC to stream like this:
./jtvlc/jtvlc omnipotententity censored /tmp/vlc.sdp

# Notes:
#- If you want to see what you're about to stream add 'dst=display, '
# before 'dst="transcode['
# More about the VLC parameters: http://wiki.videolan.org/Documentation:Modules/screen

Aggiornare:

Ho risolto il mio problema ... per la maggior parte. Stavo cercando di mettere troppe informazioni attraverso il mio upstream. Da allora ho ridotto la mia risoluzione e ho usato l'opzione crf per x264.

Ora la mia sceneggiatura si presenta così:

# 1. Get an account on http://www.justin.tv/
# 2. Copy streaming key from: http://www.justin.tv/broadcast/adv_other
# 2. Install VLC: http://www.videolan.org/vlc/
# 3. Get Win/Mac/Lin Stream Client: \
# http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
# 4. Adjust the vlc parameters to your liking and run VLC like this

#!/bin/bash
cvlc screen:// --input-slave=pulse:// \
    --screen-width 1920 \
    --screen-height 1080 \
    --screen-fps 5 \
    -v input_stream \
    --sout='#duplicate{ dst="transcode{ scale=1, width=1280, height=720, venc=x264{ keyint=60, crf=35 }, vcodec=h264, acodec=mp4a, ab=32, channels=2, samplerate=22050 } :rtp{dst=127.0.0.1,port=1234,sdp=file:///tmp/vlc.sdp} "}' \
    --sout-transcode-threads=4 & sleep 2

# 5. Run JTVLC to stream like this:
./jtvlc/jtvlc omnipotententity redacted /tmp/vlc.sdp

# Notes:
#- If you want to see what you're about to stream add 'dst=display, '
# before 'dst="transcode['
# More about the VLC parameters: http://wiki.videolan.org/Documentation:Modules/screen

Detto questo, ho ancora qualche problema. A volte quando cambio un po 'le cose sullo schermo non riesce a codificarle correttamente. Il che è strano, perché lo screencasting tramite Skype 4.0 funziona bene. Quindi ci sono ancora alcuni nodi da risolvere.

Lascio aperta la taglia e sto attivamente provando le cose menzionate. Assegnerò comunque la taglia, anche se mi sono risolto da solo.


1
Quando si tenta di eseguirlo, quali sono gli utilizzi per CPU, GPU, larghezza di banda (in% in termini)
— soandos,

La CPU va benissimo (meno del 50% su ogni core), non sono sicuro di come misurare l'utilizzo della GPU, l'utilizzo della larghezza di banda si aggira intorno a qualunque cosa io abbia messo vb =. (Per ovvi motivi.) Se imposto un numero vb inferiore, funziona molto meglio, ma ottengo anche lacerazioni video, artefatti e codifica dei messaggi. Potrebbero essere persi i pacchetti, ma potrebbe anche essere che il tasso di vb sia troppo basso? C'è un buon modo per impostare VLC su bitrate variabile?
— OmnipotentEntity,

@OmnipotentEntity: qual è la tua connessione Internet massima larghezza di banda / throughput?
— Der Hochstapler,

Se riesci a farlo funzionare, fammi sapere. Lo farebbe in modo da non dover avviare, aprire un browser e avviare la mia webcam.
— Rob,

@Oliver: 30mbps giù / 5mbps su
— OmnipotentEntity

Risposte:


3

Questo è probabilmente uno scatto nel buio, ma ho la sensazione che

--screen-fps 5 \

dovrebbe essere il problema. prova a cambiare 5 con un valore più alto come 50 e vedi cosa succede.


5 significa un frame rate piuttosto discontinuo, ma 50 è troppo. Al massimo farei circa 30 (è più o meno quello che di solito sono i film), ma con la sua limitazione della larghezza di banda, probabilmente non andrei oltre il 10.
— zebediah49

In realtà sbattere fino a 24 mi libera dai problemi di artefatto che stavo avendo prima.
— OmnipotentEntity,

Posso conoscere il tuo modello di scheda grafica?
— ItsNotAboutTheName il

NVidia 260 GTX Se ricordo bene.
— OmnipotentEntity,

Ok puoi cambiare le dimensioni dello schermo a 1280 x 720, impostare fps su 24 e provarlo? dopo aver modificato le dimensioni del desktop [dalle impostazioni delle proprietà del desktop] non dimenticare di cambiare - screen-width 1920 \ --screen-height 1080 \ in 1280 e 720. Immagino che gli errori casuali nella codifica corretta siano dovuti al fatto che deve ridimensionare il runtime video acquisito e ciò potrebbe causare questo problema.
— ItsNotAboutTheName il


0

Prova questo..!

# 1. Get an account on http://www.justin.tv/
# 2. Copy streaming key from: http://www.justin.tv/broadcast/adv_other
# 2. Install VLC: http://www.videolan.org/vlc/
# 3. Get Win/Mac/Lin Stream Client: \
#    http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
# 4. Adjust the vlc parameters to your liking and run VLC like this

#!/bin/bash
cvlc screen:// \
    --screen-width 1576 \
    --screen-height 886 \
    --screen-fps 5 \
    --screen-caching 200 \
    --screen-top 75 \
    -v input_stream \
    --sout='#duplicate{ dst="transcode{ scale=1, width=630, height=354, venc=x264{ keyint=60 }, codec=h264, vb=600, acodec=mp4a, ab=32, channels=2, samplerate=22050 } :rtp{dst=127.0.0.1,port=1234,sdp=file:///tmp/vlc.sdp} "}' \
    --sout-transcode-threads=2 &

# 5. Run JTVLC to stream like this:
jtvlc justintvusername streamkey /tmp/vlc.sdp

# Notes:
#- If you want to see what you're about to stream add 'dst=display, '
# before 'dst="transcode['
# More about the VLC parameters: http://wiki.videolan.org/Documentation:Modules/screen

Se il problema persiste, puoi provare Live Desktop Streaming tramite DLNA su GNU / Linux .


1
Amico, quella sceneggiatura sembra stranamente familiare.
— OmnipotentEntity,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.