Live Screencast sous Linux

4

J'avais quelques difficultés à exécuter Live Screencast sous Linux. J'ai trouvé jtvlc et essayé de l'utiliser, mais chaque fois que je l'utilise, le flux est vide ou en retard avec une latence extrêmement élevée. J'ai une connexion Internet rapide et un ordinateur rapide, mais je la taxe peut-être trop?

Des idées sur ce que je pourrais éventuellement faire mal?

# 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

Mise à jour:

J'ai corrigé mon problème ... pour la plupart. J'essayais de mettre trop d'informations dans mon amont. J'ai depuis réduit ma résolution et utilisé l'option crf pour x264.

Maintenant, mon script ressemble à ceci:

# 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

Cela étant dit, j'ai encore quelques problèmes. Parfois, lorsque je change les éléments à l'écran, un groupe ne parvient pas à encoder correctement. Ce qui est étrange, car le screencasting par Skype 4.0 fonctionne très bien. Il reste donc quelques problèmes à régler.

Je laisse la prime ouverte et j'essaie activement les choses mentionnées. Je vais toujours attribuer la prime, même si je me suis résolu.

OmnipotentEntity
la source
1
Lorsque vous essayez de l'exécuter, quelles sont les utilisations pour le processeur, le processeur graphique, la bande passante (en termes de%)
soandos
Le processeur est tout à fait correct (moins de 50% sur un seul cœur), je ne sais pas comment mesurer l'utilisation du GPU, l'utilisation de la bande passante oscille autour de tout ce que j'ai mis vb =. (Pour des raisons évidentes.) Si je règle le nombre de vb plus bas, cela fonctionnera beaucoup mieux, mais j'aurai aussi des dégâts vidéo déchirants, des artefacts et des problèmes d'encodage. Il s’agit peut-être de paquets perdus, mais il se peut aussi que le taux de transmission virtuelle soit trop bas Existe-t-il un moyen intéressant de définir VLC sur un débit binaire variable?
OmnipotentEntity
@ OmnipotentEntity: Quelle est la bande passante / débit maximum de vos connexions Internet?
Der Hochstapler le
Si ça marche, faites le moi savoir. Ainsi, je n'aurais pas besoin de démarrer x, d'ouvrir un navigateur et de démarrer ma webcam.
Rob
@Oliver: 30 Mbps / 5 Mbps
OmnipotentEntity

Réponses:

3

C’est probablement un coup dans le noir mais j’ai le sentiment que

--screen-fps 5 \

devrait être le problème. essayez de changer 5 en une valeur plus élevée comme 50 et voyez ce qui se passe.

Nima G
la source
5 signifie un taux de rafraîchissement plutôt variable, mais 50, c'est beaucoup trop. Tout au plus, je ferais environ 30 (c'est à peu près ce que sont les films en général), mais avec sa restriction de bande passante, je n'irais probablement pas au-dessus de 10.
zebediah49
En rassemblant jusqu'à 24, je me suis débarrassé des problèmes d'artefact que j'avais auparavant.
OmnipotentEntity
Puis-je connaître votre modèle de carte graphique?
Nima G
NVidia 260 GTX Si je me souviens bien.
OmnipotentEntity
Ok, pouvez-vous changer la taille de votre écran à 1280 x 720, définir fps à 24 et l'essayer? après avoir modifié la taille de votre bureau [à partir des paramètres de propriété de votre bureau], n'oubliez pas de changer --screen-width 1920 \ --screen-height 1080 \ en 1280 et 720. Je suppose que les échecs aléatoires de l'encodage correct sont dus au fait qu'il doit redimensionner votre exécution vidéo capturée, ce qui pourrait provoquer ce problème.
Nima G
0

Essaye ça..!

# 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

Si cela ne fonctionne pas, essayez Live Desktop Streaming via DLNA sous GNU / Linux .

Ahmed Bilfaqih
la source
1
Mec, ce script a l'air étrangement familier.
OmnipotentEntity