~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/doc/protocols.texi

  • Committer: Gauvain Pocentek
  • Date: 2012-03-06 11:59:12 UTC
  • mfrom: (66.1.15 precise)
  • Revision ID: gauvain@pocentek.net-20120306115912-h9d6kt9j0l532oo5
* Merge from Ubuntu:
  - put back faac support
  - recommends apport-hooks-medibuntu
  - change Maintainer, Uploaders & Vcs-* fields.
* New upstream snapshot
* upload to unstable
* Build against external libmpeg2
* drop 51_FTBFS_arm.patch again
* no longer build depend on libcdparanoia-dev on the Hurd
* Fix FTBFS on the hurd.
  Thanks to Samuel Thibault <sthibault@debian.org> (Closes: #654974)
* Fix FTBFS on arm
* New upstream snapshot, Closes: #650339, #643621, #481807
* Imported Upstream version 1.0~rc4+svn34492
* Bump standards version
* Bump dependency on libav >= 4:0.8~, Closes: #653887
* Fix build-indep
* Build mplayer-gui again, Closes: #568514
* Drop debian/all-lang-config-mak.sh, no longer needed
* include .dfsg1 in version number
* remove get-orig-source target
* no longer prune compiler flags from the environment
* No longer advertise nor build 3fdx, mga and dxr3 backends,
  Closes: #496106, #442181, #533546
* beautify mplayer version identification string
* Brown paperbag upload.
* Next try to fix build failure on sparce after recent binutils change.
* Brown paperbag upload.
* Really fix build failure on sparc after recent binutils change.
* Properly set Replaces/Conflicts on mplayer2{,-dbg} to avoid
  file overwrite errors.
* Adjust versioning of mplayer listed in the mplayer-dbg's Depends field.
* Fix build failure on sparc after recent binutils change.
* Urgency medium bumped because of RC-level bugfix
  and speeding up x264 transition.
* Update to my @debian.org email.
* Upload to unstable
* Enable joystick support on Linux only, Closes: #638408
* Rebuild fixes toolchain issue on arm, Closes: #637077
* New upstream snapshot
* following the discussion started by Diego Biurrun <diego@biurrun.de>
  in debian-devel, I have prepared a new packaging of 'mplayer'
  (with code that comes from CVS)
* the upstream tar.bz cannot be distributed by Debian, since it contains
   CSS code; so I am repackaging it 
* I have tried my best to address all known issues:
  - the package contains the detailed Copyright made by Diego Biurrun 
  - the package does not contain CSS code, or  AFAIK other code on which 
     there is active patent enforcement
  - there is a script  debian/cvs-changelog.sh  that shows all changes
     done to files included in this source.
    This should comply with GPLv2 sec 2.a  (in spirit if not in letter)
    For this reason, the source code contains CVS directories.
* needs   make (>= 3.80) for 'html-chunked-$(1)' in DOCS/xml/Makefile

* some corrections, as suggested Diego Biurrun
  - binary codecs should go into /usr/lib/codecs (upstream default)
  - better template 'mplayer/install_codecs'
  - an empty 'font=' in mplayer.conf breaks mplayer: postinst corrected
* correction in 'mplayer/cfgnote'
* better mplayer.postinst and mplayer.config

* New upstream release
* better debian/copyright file
* do not ship a skin
* New upstream release
* changed DEB_BUILD_OPTIONS to DEB_BUILD_CONFIGURE ,
  DEB_BUILD_OPTIONS is used as in debian policy
* use gcc-3.4
* changed xlibs-dev to a long list of dependencies, for Debian/etch
* try to adhere to  http://www.mplayerhq.hu/DOCS/tech/binary-packaging.txt
  (see README.Debian for details)
* removed dependency on xlibmesa-dev, disabled opengl
* New upstream release
* Simon McVittie <hacks@pseudorandom.co.uk> wonderful work:
- Work around Debian bug #267442 (glibc's sys/uio.h and gcc's altivec.h have
  conflicting uses for __vector) by re-ordering #includes
- Fix potential symlink attack in ./configure
- Disable support for binary codecs on platforms for which those codecs
  aren't available; also disable the corresponding Debconf note when it's
  inappropriate
- Changed Build-Depends: so it works in pbuilder
- Explicitly build-depend on libjpeg62-dev, libfontconfig1-dev,
  libungif4-dev 
- Tweak debian/rules to avoid certain errors being ignored
- Use --language=all
* provide a target  'debian/rules get-orig-source' 
  that recreates the orig.tar.gz ; then use the above orig.tar.gz
* rewrote some parts of debian/rules
* don't clean and recompile docs if upstream ships them
* mplayer-doc was shipping too much stuff
* translated man pages where not installed properly
* compile with libdv4-dev
* correct README.Debian
* Forgot build-dep on libtheora
* Must not depend on libxvidcore
* New upstream release
* new release.
* rc1 to become 0.90
* new pre-release
* new pre-release
* gtk bug fixed.
* new release.
* version bumped
* 0.60 pre2 release
* 0.60 pre-release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
52
52
protocol.
53
53
 
54
54
For example to read a sequence of files @file{split1.mpeg},
55
 
@file{split2.mpeg}, @file{split3.mpeg} with @file{ffplay} use the
 
55
@file{split2.mpeg}, @file{split3.mpeg} with @file{avplay} use the
56
56
command:
57
57
@example
58
 
ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
 
58
avplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
59
59
@end example
60
60
 
61
61
Note that you may need to escape the character "|" which is special for
67
67
 
68
68
Allow to read from or read to a file.
69
69
 
70
 
For example to read from a file @file{input.mpeg} with @file{ffmpeg}
 
70
For example to read from a file @file{input.mpeg} with @command{avconv}
71
71
use the command:
72
72
@example
73
 
ffmpeg -i file:input.mpeg output.mpeg
 
73
avconv -i file:input.mpeg output.mpeg
74
74
@end example
75
75
 
76
76
The ff* tools default to the file protocol, that is a resource
109
109
Some examples follow.
110
110
@example
111
111
# Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
112
 
ffmpeg -i input.flv -f avi -y md5:output.avi.md5
 
112
avconv -i input.flv -f avi -y md5:output.avi.md5
113
113
 
114
114
# Write the MD5 hash of the encoded AVI file to stdout.
115
 
ffmpeg -i input.flv -f avi -y md5:
 
115
avconv -i input.flv -f avi -y md5:
116
116
@end example
117
117
 
118
118
Note that some formats (typically MOV) require the output protocol to
134
134
is not specified, by default the stdout file descriptor will be used
135
135
for writing, stdin for reading.
136
136
 
137
 
For example to read from stdin with @file{ffmpeg}:
 
137
For example to read from stdin with @command{avconv}:
138
138
@example
139
 
cat test.wav | ffmpeg -i pipe:0
 
139
cat test.wav | avconv -i pipe:0
140
140
# ...this is the same as...
141
 
cat test.wav | ffmpeg -i pipe:
 
141
cat test.wav | avconv -i pipe:
142
142
@end example
143
143
 
144
 
For writing to stdout with @file{ffmpeg}:
 
144
For writing to stdout with @command{avconv}:
145
145
@example
146
 
ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
 
146
avconv -i test.wav -f avi pipe:1 | cat > test.avi
147
147
# ...this is the same as...
148
 
ffmpeg -i test.wav -f avi pipe: | cat > test.avi
 
148
avconv -i test.wav -f avi pipe: | cat > test.avi
149
149
@end example
150
150
 
151
151
Note that some formats (typically MOV), require the output protocol to
155
155
 
156
156
Real-Time Messaging Protocol.
157
157
 
158
 
The Real-Time Messaging Protocol (RTMP) is used for streaming multime‐
159
 
dia content across a TCP/IP network.
 
158
The Real-Time Messaging Protocol (RTMP) is used for streaming multimedia
 
159
content across a TCP/IP network.
160
160
 
161
161
The required syntax is:
162
162
@example
183
183
 
184
184
@end table
185
185
 
186
 
For example to read with @file{ffplay} a multimedia resource named
 
186
For example to read with @file{avplay} a multimedia resource named
187
187
"sample" from the application "vod" from an RTMP server "myserver":
188
188
@example
189
 
ffplay rtmp://myserver/vod/sample
 
189
avplay rtmp://myserver/vod/sample
190
190
@end example
191
191
 
192
192
@section rtmp, rtmpe, rtmps, rtmpt, rtmpte
195
195
librtmp.
196
196
 
197
197
Requires the presence of the librtmp headers and library during
198
 
configuration. You need to explicitely configure the build with
 
198
configuration. You need to explicitly configure the build with
199
199
"--enable-librtmp". If enabled this will replace the native RTMP
200
200
protocol.
201
201
 
219
219
See the librtmp manual page (man 3 librtmp) for more information.
220
220
 
221
221
For example, to stream a file in real-time to an RTMP server using
222
 
@file{ffmpeg}:
 
222
@command{avconv}:
223
223
@example
224
 
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
 
224
avconv -re -i myfile -f flv rtmp://myserver/live/mystream
225
225
@end example
226
226
 
227
 
To play the same stream using @file{ffplay}:
 
227
To play the same stream using @file{avplay}:
228
228
@example
229
 
ffplay "rtmp://myserver/live/mystream live=1"
 
229
avplay "rtmp://myserver/live/mystream live=1"
230
230
@end example
231
231
 
232
232
@section rtp
242
242
 
243
243
The muxer can be used to send a stream using RTSP ANNOUNCE to a server
244
244
supporting it (currently Darwin Streaming Server and Mischa Spiegelmock's
245
 
RTSP server, @url{http://github.com/revmischa/rtsp-server}).
 
245
@uref{http://github.com/revmischa/rtsp-server, RTSP server}).
246
246
 
247
247
The required syntax for a RTSP url is:
248
248
@example
249
 
rtsp://@var{hostname}[:@var{port}]/@var{path}[?@var{options}]
 
249
rtsp://@var{hostname}[:@var{port}]/@var{path}
250
250
@end example
251
251
 
252
 
@var{options} is a @code{&}-separated list. The following options
 
252
The following options (set on the @command{avconv}/@file{avplay} command
 
253
line, or set in code via @code{AVOption}s or in @code{avformat_open_input}),
253
254
are supported:
254
255
 
 
256
Flags for @code{rtsp_transport}:
 
257
 
255
258
@table @option
256
259
 
257
260
@item udp
261
264
Use TCP (interleaving within the RTSP control channel) as lower
262
265
transport protocol.
263
266
 
264
 
@item multicast
 
267
@item udp_multicast
265
268
Use UDP multicast as lower transport protocol.
266
269
 
267
270
@item http
268
271
Use HTTP tunneling as lower transport protocol, which is useful for
269
272
passing proxies.
270
 
 
271
 
@item filter_src
272
 
Accept packets only from negotiated peer address and port.
273
273
@end table
274
274
 
275
275
Multiple lower transport protocols may be specified, in that case they are
276
276
tried one at a time (if the setup of one fails, the next one is tried).
277
277
For the muxer, only the @code{tcp} and @code{udp} options are supported.
278
278
 
 
279
Flags for @code{rtsp_flags}:
 
280
 
 
281
@table @option
 
282
@item filter_src
 
283
Accept packets only from negotiated peer address and port.
 
284
@end table
 
285
 
279
286
When receiving data over UDP, the demuxer tries to reorder received packets
280
287
(since they may arrive out of order, or packets may get lost totally). In
281
288
order for this to be enabled, a maximum delay must be specified in the
282
289
@code{max_delay} field of AVFormatContext.
283
290
 
284
 
When watching multi-bitrate Real-RTSP streams with @file{ffplay}, the
 
291
When watching multi-bitrate Real-RTSP streams with @file{avplay}, the
285
292
streams to display can be chosen with @code{-vst} @var{n} and
286
293
@code{-ast} @var{n} for video and audio respectively, and can be switched
287
294
on the fly by pressing @code{v} and @code{a}.
291
298
To watch a stream over UDP, with a max reordering delay of 0.5 seconds:
292
299
 
293
300
@example
294
 
ffplay -max_delay 500000 rtsp://server/video.mp4?udp
 
301
avplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
295
302
@end example
296
303
 
297
304
To watch a stream tunneled over HTTP:
298
305
 
299
306
@example
300
 
ffplay rtsp://server/video.mp4?http
 
307
avplay -rtsp_transport http rtsp://server/video.mp4
301
308
@end example
302
309
 
303
310
To send a stream in realtime to a RTSP server, for others to watch:
304
311
 
305
312
@example
306
 
ffmpeg -re -i @var{input} -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
 
313
avconv -re -i @var{input} -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
307
314
@end example
308
315
 
309
316
@section sap
355
362
To broadcast a stream on the local subnet, for watching in VLC:
356
363
 
357
364
@example
358
 
ffmpeg -re -i @var{input} -f sap sap://224.0.0.255?same_port=1
359
 
@end example
360
 
 
361
 
Similarly, for watching in ffplay:
362
 
 
363
 
@example
364
 
ffmpeg -re -i @var{input} -f sap sap://224.0.0.255
365
 
@end example
366
 
 
367
 
And for watching in ffplay, over IPv6:
368
 
 
369
 
@example
370
 
ffmpeg -re -i @var{input} -f sap sap://[ff0e::1:2:3:4]
 
365
avconv -re -i @var{input} -f sap sap://224.0.0.255?same_port=1
 
366
@end example
 
367
 
 
368
Similarly, for watching in avplay:
 
369
 
 
370
@example
 
371
avconv -re -i @var{input} -f sap sap://224.0.0.255
 
372
@end example
 
373
 
 
374
And for watching in avplay, over IPv6:
 
375
 
 
376
@example
 
377
avconv -re -i @var{input} -f sap sap://[ff0e::1:2:3:4]
371
378
@end example
372
379
 
373
380
@subsection Demuxer
389
396
To play back the first stream announced on the normal SAP multicast address:
390
397
 
391
398
@example
392
 
ffplay sap://
 
399
avplay sap://
393
400
@end example
394
401
 
395
402
To play back the first stream announced on one the default IPv6 SAP multicast address:
396
403
 
397
404
@example
398
 
ffplay sap://[ff0e::2:7ffe]
 
405
avplay sap://[ff0e::2:7ffe]
399
406
@end example
400
407
 
401
408
@section tcp
413
420
Listen for an incoming connection
414
421
 
415
422
@example
416
 
ffmpeg -i @var{input} -f @var{format} tcp://@var{hostname}:@var{port}?listen
417
 
ffplay tcp://@var{hostname}:@var{port}
 
423
avconv -i @var{input} -f @var{format} tcp://@var{hostname}:@var{port}?listen
 
424
avplay tcp://@var{hostname}:@var{port}
418
425
@end example
419
426
 
420
427
@end table
439
446
@item localport=@var{port}
440
447
override the local UDP port to bind with
441
448
 
 
449
@item localaddr=@var{addr}
 
450
Choose the local IP address. This is useful e.g. if sending multicast
 
451
and the host has multiple interfaces, where the user can choose
 
452
which interface to send on by specifying the IP address of that interface.
 
453
 
442
454
@item pkt_size=@var{size}
443
455
set the size in bytes of UDP packets
444
456
 
460
472
the specified peer address/port.
461
473
@end table
462
474
 
463
 
Some usage examples of the udp protocol with @file{ffmpeg} follow.
 
475
Some usage examples of the udp protocol with @command{avconv} follow.
464
476
 
465
477
To stream over UDP to a remote endpoint:
466
478
@example
467
 
ffmpeg -i @var{input} -f @var{format} udp://@var{hostname}:@var{port}
 
479
avconv -i @var{input} -f @var{format} udp://@var{hostname}:@var{port}
468
480
@end example
469
481
 
470
482
To stream in mpegts format over UDP using 188 sized UDP packets, using a large input buffer:
471
483
@example
472
 
ffmpeg -i @var{input} -f mpegts udp://@var{hostname}:@var{port}?pkt_size=188&buffer_size=65535
 
484
avconv -i @var{input} -f mpegts udp://@var{hostname}:@var{port}?pkt_size=188&buffer_size=65535
473
485
@end example
474
486
 
475
487
To receive over UDP from a remote endpoint:
476
488
@example
477
 
ffmpeg -i udp://[@var{multicast-address}]:@var{port}
 
489
avconv -i udp://[@var{multicast-address}]:@var{port}
478
490
@end example
479
491
 
480
492
@c man end PROTOCOLS