Chapter 4.  Exemples d'utilisation avancée de diffusion avec VLC (transcodage, diffusion multiple, etc...)

Table of Contents

Transcodage
Diffusion multiple
Transcodage et diffusion multiple
Diffusion HTTP
Diffusion RTP
RTSP
diffusion MMS / MMSH vers Windows Media Player
Utiliser le module es

Transcodage

Transcoder le flux d'entrée et l'envoier vers une adresse multicast avec l'annonce SAP associée:

% vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"}'

Afficher le flux d'entrée, le transcoder et l'envoyer vers une adresse multicast avec l'annonce SAP associée:

% vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
"transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"}"}'

Transcoder, afficher le flux transcodé et l'envoyer vers une adresse multicast avec l'annonce SAP associée:

% vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
duplicate{dst=display,dst=standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"}}'

Diffusion multiple

Envoyer le flux vers une adresses IP multicast et une adresse IP unicast:

% vlc -vvv input_stream --sout '#duplicate{dst=
standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"},
dst=standard{access=udp,mux=ts,dst=192.168.1.2}}'

Afficher le flux et l'envoyer vers deux adresses IP unicast:

% vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
standard{access=udp,mux=ts,dst=192.168.1.12},
dst=standard{access=udp,mux=ts,dst=192.168.1.42}}'

Envoyer des parties d'un flux d'entrée multiple:

% vlc -vvv multiple_program_input_stream 
--sout '#duplicate{dst=standard{access=udp,mux=ts,dst=239.255.12.42},select="program=12345",
dst=standard{access=udp,mux=ts,dst=239.255.12.43}, select="video,program=1234-2345"}'

Cette commande envoie le programme du flux d'entrée dont le numéro est 12345 vers l'adresses 239.255.12.42 et tous les programmes dont le numeros est compris entre 1234 et 2345 vers l'adresse 239.255.12.43.

Transcodage et diffusion multiple

Transcoder le flux d'entrée, afficher le flux transcodé et l'envoyer vers une adresse IP multicast avec l'annonce SAP associée et une adresse IP unicast:

% vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
duplicate{dst=display,dst=standard{access=udp,mux=ts,dst=239.255.12.42,sap,name="TestStream"},
dst=standard{access=udp,mux=ts,dst=192.168.1.2}}'

Afficher le flux d'entrée, le transcoder et l'envoyer vers deux adresses IP unicast:

% vlc -vvv input_stream --sout '#duplicate{dst=display,
dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
duplicate{dst=standard{access=udp,mux=ts,dst=192.168.1.2},
dst=standard{access=udp,mux=ts,dst=192.168.1.12}"}'

Envoyer le flux d'entrée vers une adresses IP multiicast, et le flux trancodée vers une autre adresse IP multicast avec les annonces SAP associées:

% vlc -vvv input_stream --sout '#duplicate{dst=
standard{access=udp,mux=ts,dst=239.255.1.2,sap,name="OriginalStream"},
dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
standard{access=udp,mux=ts,dst=239.255.1.3,sap,name="TranscodedStream"}"}'

Diffusion HTTP

Diffuser en HTTP:

  • Sur le serveur, lancer

    % vlc -vvv input_stream --sout '#standard{access=http,mux=ogg,dst=server.example.org:8080}'
    
  • sur le(s) client(s), lancer:

    % vlc http://server.example.org:8080
    

Transcoder et diffuser en HTTP:

% vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
standard{access=http,mux=ogg,dst=server.example.org:8080}'

Par exemple, si vous voulez diffuser un CD audio en Ogg/Vorbis par HTTP:

% vlc -vvv cdda:/dev/cdrom --sout '#transcode{acodec=vorb,ab=128}:
standard{access=http,mux=ogg,dst=server.example.org:8080}'

Diffusion RTP

Diffuser en RTP

  • Sur le serveur, lancer

    % vlc -vvv input_stream --sout '#rtp{dst=192.168.0.12,port=1234,sdp=rtsp://server.example.org:8080/test.sdp}'
    
  • sur le(s) client(s), lancer:

    % vlc rtsp://server.example.org:8080/test.sdp
    

Note

You can remplace the rtsp URL by a http one, a file path (prefixed with file://) or sap:// to export the sdp file using one of these methods instead of rtsp.

RTSP

Voir VLM - Diffusions multiples et Vidéo à la demande

diffusion MMS / MMSH vers Windows Media Player

% vlc -vvv input_stream --sout '#transcode{vcodec=DIV3,vb=256,scale=1,acodec=mp3,ab=32,channels=2}:std{access=mmsh,mux=asfh,dst=:8080}'

VLC media player peut s'y connecter en utilisant l'URL suivante mmsh://server_ip_address:8080 .

Windows Media Player peut s'y connecter en utilisant l'URL suivante: mms://server_ip_address:8080 .

Utiliser le module es

Separer l'audio et la video en deux fichiers PS:

% vlc -vvv input_stream --sout
'#es{access=file,mux=ps,url_audio=audio-%c.%m,url_video=video-%c.%m}'

Extraire la piste audio du flux d'entrée en un fichier TS

% vlc -vvv input_stream --sout '#es{access_audio=file,mux_audio=ts,url_audio=audio-%c.%m}'

Diffuser en unicast la piste audio sur un port et la piste video sur un autre port:

  • du coté serveur:

    % vlc -vvv input_stream --sout
    '#es{access=rtp,mux=ts,url_audio=192.168.1.2:1212,url_video=192.168.1.2:1213}'
    
  • côté client: pour recevoir le son:

    % vlc udp:@:1212
    

    pour recevoir la vidéo:

    % vlc udp:@:1213
    

Emettre la vidéo en multicast et enregistrer le son dans un fichier:

% vlc -vvv input_stream --sout '#es{access-video=udp,mux-video=ts,dst-video=239.255.12.42,
access-audio=file,mux-audio=ps,dst-audio=audio-%c.%m}'

Note

Vous pouvez également combiner le module es avec d'autres modules pour créer des solutions encore plus complexes.