Commit Graph

54 Commits

Author SHA1 Message Date
Martin Storsjö 705b748e8d tls: Add support for listen mode
Also add options for specifying a certificate and key, which can
be used both when operating as client and as server.

Partially based on a patch by Peter Ross.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-26 23:13:35 +03:00
Martin Storsjö 8b09d917e7 tls: Add options for verifying the peer certificate
A file containing the trusted CA certificates needs to be
supplied via the ca_file AVOption, unless the TLS library
has got a system default file/database set up.

This doesn't check the hostname of the peer certificate with
openssl, which requires a non-trivial piece of code for
manually matching the desired hostname to the string provided
by the certificate, not provided as a library function.

That is, with openssl, this only validates that the received
certificate is signed with the right CA, but not that it is
the actual server we think we're talking to.

Verification is still disabled by default since we can't count
on a proper CA database existing at all times.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-26 23:13:06 +03:00
Martin Storsjö d175a5730b doc: Add an example on publishing over RTMP
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-10 18:37:21 +03:00
Martin Storsjö 3bea53dbdf doc: Add librtmp to the section header for the librtmp specific details
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-10 18:37:21 +03:00
Martin Storsjö a435ca5b4d doc: Explain that the default RTMP user agent is different when publishing
The fact that a different user agent is used is cruicial for getting
publishing authentication working. (When using librtmp, this other
user agent has to be specified manually, but that's not needed
with the libavformat internal RTMP support.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-10 18:37:21 +03:00
Martin Storsjö aa16a6b0c5 doc: Extend the rtmp example to include how to pass username/password
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-10 18:37:21 +03:00
Luca Barbato 605387582b lavf: Support unix sockets 2013-08-05 16:13:35 +02:00
Diego Biurrun a5f8873620 silly typo fixes 2013-05-03 18:26:12 +02:00
Vicente Jimenez Aguilar 202b5f6deb doc: Fix some obsolete references to av* tools as ff* tools
Signed-off-by: Diego Biurrun <diego@biurrun.de>

CC: libav-stable@libav.org
2013-02-18 13:04:29 +01:00
Jordi Ortiz e5f2731c73 rtmp: Add support for receiving incoming streams
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 18:13:41 +03:00
Samuel Pitoiset 93f257db6b rtmp: Automatically compute the hash for SWFVerification
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 22:05:36 +03:00
Samuel Pitoiset 635ac8e1be rtmp: Add support for SWFVerification
Specifies how the server verifies client SWF files before allowing the
files to connect to an application. Verifying SWF files is a security
measure that prevents someone from creating their own SWF files that can
attempt to stream your resources.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 10:37:34 +03:00
Samuel Pitoiset 00cb52c65c rtmp: Add a new option 'rtmp_subscribe'
This option specifies the name of live stream to subscribe.
Defaults to rtmp_playpath.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-07 23:35:39 +03:00
Samuel Pitoiset 758377a2b7 rtmp: Add a new option 'rtmp_pageurl'
This option specifies the URL of the web page in which the media
was embedded.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:33:13 +03:00
Samuel Pitoiset 98df48db6d doc: Update the description of the rtmp_tcurl option
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:33:11 +03:00
Samuel Pitoiset 08cd95e8a3 RTMPTE protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:09 +03:00
Samuel Pitoiset acd554c103 RTMPE protocol support
This adds two protocols, but one of them is an internal implementation
detail just used as an abstraction layer/generalization in the code. The
RTMPE protocol implementation uses ffrtmpcrypt:// as an alternative to the
tcp:// protocol. This allows moving most of the lower level logic out
from the higher level generic rtmp code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:07 +03:00
Samuel Pitoiset 86991ce2dd RTMPTS protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 14:02:55 +03:00
Samuel Pitoiset 6aedabc9b6 RTMPS protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 13:53:33 +03:00
Jordi Ortiz a8ad6ffafe rtsp: Add listen mode
This makes the RTSP demuxer act as a server, listening for an
incoming connection.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 22:00:28 +03:00
Martin Storsjö 75d339e044 udp: Support IGMPv3 source specific multicast and source blocking
Based on an original patch by Stephen D'Angelo <SDAngelo@evertz.com>.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-27 14:39:00 +03:00
Samuel Pitoiset 46743a859c rtmp: Don't send every flv packet in a separate HTTP request in RTMPT
Add a new option 'rtmp_flush_interval' that allows specifying the
number of packets to write before sending it off as a HTTP request.

This is mostly relevant for RTMPT - for plain RTMP, it only controls
how often we check the socket for incoming packets, which shouldn't
affect the performance in any noticeable way.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:00:31 +03:00
Samuel Pitoiset 8e50c57dcb RTMPT protocol support
This adds two protocols, but one of them is an internal implementation
detail just used as an abstraction layer/generalization in the code. The
RTMPT protocol implementation uses rtmphttp:// as an alternative to the
tcp:// protocol. This allows moving most of the lower level logic out
from the higher level generic rtmp code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 22:56:56 +03:00
Samuel Pitoiset 8517e9c476 rtmp: Add a new option 'rtmp_buffer', for setting the client buffer time
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-13 17:04:39 +03:00
Samuel Pitoiset 8ee3e1874e rtmp: support connection parameters
Allow using connection parameters in order to append arbitrary
AMF data like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0" to the
Connect message. You can pass these parameters through the -rtmp_conn
option.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-11 13:46:50 +03:00
Samuel Pitoiset b4c92e94bb doc: Add documentation for the newly added rtmp_* options
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-11 13:37:23 +03:00
Luca Barbato c6eeb9b7b6 rtmp: fix url parsing
The application component can have a subcomponent to specify the
application instance even if it doesn't have a ":" in the playpath.
2012-05-25 14:20:34 -07:00
Diego Biurrun 90c9edba58 doc: Replace some @file tags by more suitable markup. 2012-05-18 16:08:41 +02:00
Martin Storsjö ccfa8aa26f rtsp: Set the default delay to 0.1 s for the RTSP/SDP/RTP demuxers
This enables reordering of UDP packets by default, unless the caller
explicitly sets -max_delay 0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 10:53:49 +02:00
Martin Storsjö 9cb9c6c42d hlsproto: Encourage users to try the hls demuxer instead of the proto
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Martin Storsjö 3975ca8957 doc: Move the hls protocol section into the right place
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Martin Storsjö 8bdab32f4e libavformat: Rename the applehttp protocol to hls
Keep the old protocol name around for backwards compatibility
until the next bump.

Deprecate the method of implicitly assuming the nested protocol.
For applehttp://server/path, it might have felt logical, but
supporting hls://server/path isn't quite as intuitive. Therefore
only support hls+http://server/path from now on.

Using this protocol at all is discouraged, since the hls demuxer
is more complete and fits into the architecture better. There
have been cases where the protocol implementation worked better
than the demuxer, but this should no longer be the case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-14 20:05:32 +02:00
Diego Biurrun da9cea77e3 Fix a bunch of common typos. 2011-12-11 00:32:25 +01:00
Luca Barbato d5837d7fe9 doc: update documentation to use avconv 2011-12-09 18:26:31 +01:00
Martin Storsjö 65ac51373b udp: Allow specifying the local IP address
This is useful if sending multicast data on a host with
multiple interfaces.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-09 20:19:39 +02:00
Martin Storsjö 02a1a28c61 doc: Update the documentation on setting options for RTSP
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-10-17 19:57:50 +03:00
Anton Khirnov 266463daff Rename ffplay to avplay. 2011-08-09 19:56:21 +02:00
Diego Biurrun 2cb6dec61c doc: Improve references to external URLs.
Sometimes it makes sense to replace a raw URL with some informative text
that links to the URL instead of using the raw URL itself in the text.
Also transform some mailing list references into links.
2011-07-12 23:42:20 +02:00
Luca Barbato 3d42d4937b proto: introduce listen option in tcp
This way is possible to have simple micro-server act like

ffmpeg -i file.nut -vcodec copy -acodec copy -f nut tcp://foo:1234?listen
2011-04-07 02:54:30 +02:00
Anton Khirnov 4ec153bb66 avio: make udp_set_remote_url/get_local_port internal. 2011-03-23 17:32:13 +01:00
Luca Barbato 4af9c1a56f doc: update applehttp documentation
Integrate more comments from Stefano.
2011-03-17 03:34:16 +01:00
Janne Grunau f8a45fa1b1 replace FFmpeg with Libav in doc/
unless it stands for ffmpeg the program or is historic
2011-03-16 22:01:01 +01:00
Luca Barbato 0e6a3ee4fa doc: document applehttp protocol
The documentation might be extended once/if a live/store override option
will have to be provided for non-compliant segmenter.
2011-03-13 16:34:58 +01:00
Martin Storsjö a92c30d76e rtsp: Allow requesting of filtering of source packets
If filtered, only packets from the right source address and port
are received.

To test, play back e.g. some mpeg4 video RTSP stream (where the
video stream is the first stream in the presentation) over UDP.
While receiving this stream, send another stream to the same port:
ffmpeg -re -i <whatever> -vcodec mpeg4 -an -f rtp
rtp://127.0.0.1:5000?localport=1234
Normally, the RTSP playback reports lots of errors at this point.

If the RTSP stream has the ?filter_src option enabled, these
interferring packets are ignored.

Originally committed as revision 26246 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 15:22:58 +00:00
Martin Storsjö 21a569f302 udp: Allow specifying the connect option in udp_set_remote_url, too
If the remote address is updated later with this function, the caller
shouldn't set the connect option until in this call.

Originally committed as revision 26245 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-06 15:16:50 +00:00
Martin Storsjö 01c8d258da Add a SAP demuxer
Originally committed as revision 25463 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-13 09:06:59 +00:00
Martin Storsjö 61c089a81b Document the SAP muxer
Originally committed as revision 25427 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-09 18:50:02 +00:00
Martin Storsjö f6833fc1c6 Add protocol documentation on the connect option to the udp protocol
Originally committed as revision 25407 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 08:49:56 +00:00
Martin Storsjö 92c5052db9 Add protocol documentation on RTSP
Originally committed as revision 25330 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-04 07:06:58 +00:00
Stefano Sabatini 0fb226b37a Document udp protocol.
Based on a patch by Aviad Rozenhek aviadr1 @ reverse(moc.liamg).

Originally committed as revision 25192 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-25 10:16:15 +00:00