old-www/HOWTO/VideoLAN-HOWTO/x1096.html

798 lines
10 KiB
HTML

<HTML
><HEAD
><TITLE
>&#13;Examples
</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="VideoLAN HOWTO"
HREF="index.html"><LINK
REL="UP"
TITLE="
Advanced use of VLC's stream output
(transcoding, multiple streaming, etc...)
"
HREF="usesout.html"><LINK
REL="PREVIOUS"
TITLE="
The syntax
"
HREF="x1091.html"><LINK
REL="NEXT"
TITLE="
Stream in IPv6
"
HREF="ipv6.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>VideoLAN HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x1091.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 9. Advanced use of VLC's stream output
(transcoding, multiple streaming, etc...)</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="ipv6.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN1096"
></A
>9.2. Examples</H1
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1098"
></A
>9.2.1. Transcoding</H2
><P
>&#13;Transcode the input stream and send it to a
multicast IP address with the associated SAP announce
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13; Display the input stream, transcode it and send it
to a multicast IP address with the associated SAP announce
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
"transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream}"}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;Transcode the input stream, display the transcoded
stream and send it to a multicast IP address with the associated SAP
announce
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
duplicate{dst=display,dst=standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream}}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1112"
></A
>9.2.2. Multiple streaming</H2
><P
>&#13;Send a stream to a multicast IP address and a
unicast IP address
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#duplicate{dst=
standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream},
dst=standard{access=udp,mux=ts,url=192.168.1.2}}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;Display the stream and send it to two unicast IP
addresses
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#duplicate{dst=display,dst=
standard{access=udp,mux=ts,url=192.168.1.12},
dst=standard{access=udp,mux=ts,url=192.168.1.42}}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1122"
></A
>9.2.3. Transcoding and multiple streaming</H2
><P
>&#13;Transcode the input stream, display the transcoded
stream and send it to a multicast IP address with the associated SAP
announce and an unicast IP address
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
duplicate{dst=display,dst=standard{access=udp,mux=ts,url=239.255.12.42,sap=TestStream},
dst=standard{access=udp,mux=ts,url=192.168.1.2}}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;Display the input stream, transcode it and send it
to two unicast IP addresses
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>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,url=192.168.1.2},
dst=standard{access=udp,mux=ts,url=192.168.1.12}"}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;Send the input stream to a multicast IP address
and the transcoded stream to another multicast IP address with the
associated SAP announces
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#duplicate{dst=
standard{access=udp,mux=ts,url=239.255.1.2,sap=OriginalStream},
dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
standard{access=udp,mux=ts,url=239.255.1.3,sap=TranscodedStream}"}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1136"
></A
>9.2.4. HTTP streaming</H2
><P
>&#13;Stream in HTTP
:</P
><P
></P
><UL
><LI
><P
>&#13;on the server, run
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#standard{access=http,mux=ogg,url=server.example.org:8080}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></LI
><LI
><P
>&#13;on the client(s), run
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc http://server.example.org:8080</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></LI
></UL
><P
>&#13;Transcode and stream in HTTP
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:
standard{access=http,mux=ogg,url=server.example.org:8080}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;For example, if you want to stream an audio CD in
Ogg/Vorbis over HTTP
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv cdda:/dev/cdrom --sout '#transcode{acodec=vorb,ab=128}:
standard{access=http,mux=ogg,url=server.example.org:8080}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1158"
></A
>9.2.5. Use the <EM
>es</EM
> module</H2
><P
>&#13;Separate audio and video in two PS files
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout
'#es{access=file,mux=ps,url_audio=audio-%c.%m,url_video=video-%c.%m}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;Extract the audio track of the input stream to a TS
file
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#es{access_audio=file,mux_audio=ts,url_audio=audio-%c.%m}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13; Stream in unicast the audio track on a port and the
video track on another port
:</P
><P
></P
><UL
><LI
><P
>&#13;on the server side
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout
'#es{access=rtp,mux=ts,url_audio=192.168.1.2:1212,url_video=192.168.1.2:1213}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></LI
><LI
><P
>&#13;on the client side: to receive the audio
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc udp:@:1212</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;to receive the video
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc udp:@:1213</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
></LI
></UL
><P
>&#13;Stream in multicast the video and dump the audio in
a file
:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<TT
CLASS="prompt"
>% </TT
><TT
CLASS="userinput"
><B
>vlc -vvv input_stream --sout '#es{access_video=udp,mux_video=ts,url_video=239.255.12.42,
access_audio=file,mux_audio=ps,url_audio=audio-%c.%m}'</B
></TT
>
</PRE
></FONT
></TD
></TR
></TABLE
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;You can also combine the <EM
>es</EM
>
module with the other modules to set-up even more complex
solution
.</P
></TD
></TR
></TABLE
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x1091.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="ipv6.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The syntax</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="usesout.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Stream in IPv6</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>