FFmpeg git repo
Go to file
Martin Storsjö 847bf5988f movenc: Add an option for delaying writing the moov with empty_moov
This delays writing the moov until the first fragment is written,
or can be flushed by the caller explicitly when wanted. If the first
sample in all streams is available at this point, we can write
a proper editlist at this point, allowing streams to start at
something else than dts=0. For AC3 and DNXHD, a packet is
needed in order to write the moov header properly.

This isn't added to the normal behaviour for empty_moov, since
the behaviour that ftyp+moov is written during avformat_write_header
would be changed. Callers that split the output stream into header+segments
(either by flushing manually, with the custom_frag flag set, or by
just differentiating between data written during avformat_write_header
and the rest) will need to be adjusted to take this option into use.

For handling streams that start at something else than dts=0, an
alternative would be to use different kinds of heuristics for
guessing the start dts (using AVCodecContext delay or has_b_frames
together with the frame rate), but this is not reliable and doesn't
necessarily work well with stream copy, and wouldn't work for getting
the right initialization data for AC3 or DNXHD either.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-03 01:19:27 +02:00
compat w32pthreads: use the condition variable API directly when targeting newer versions of Windows 2014-10-10 11:27:30 +03:00
doc vdpau: add helper for surface chroma type and size 2014-12-25 20:47:49 +01:00
libavcodec h264: restore a block mistakenly removed in e10fd08a 2014-12-27 10:44:48 +01:00
libavdevice xcbgrab: Move NULL check before pointer dereference 2014-12-18 23:27:14 +01:00
libavfilter lavfi: always check av_expr_parse_and_eval() return value 2014-12-18 23:27:14 +01:00
libavformat movenc: Add an option for delaying writing the moov with empty_moov 2015-01-03 01:19:27 +02:00
libavresample avresample: Make sure the even check does not overflow 2014-10-18 16:15:10 +01:00
libavutil check memory errors from av_strdup() 2014-12-18 23:27:14 +01:00
libswscale swscale: Properly scale YUV 2014-12-05 13:03:49 +00:00
presets presets: spelling error in libvpx 1080p50_60 2011-10-22 00:28:56 +02:00
tests fate: Use bitexact conversions in the dpxparser test 2014-12-29 23:21:43 +02:00
tools sidxindex: Write mimeType=audio/mp4 for audio-only representations 2014-11-24 09:23:14 +02:00
.gitattributes Treat all '*.pnm' files as non-text file 2014-11-28 17:52:43 -05:00
.gitignore fate: Split fate-pixdesc tests and dispatch them through Make 2014-08-01 01:18:30 -07:00
COPYING.GPLv2
COPYING.GPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
CREDITS partially rename FFmpeg to Libav 2011-03-16 21:54:39 +01:00
Changelog oggdec: add support for VP8 demuxing 2014-12-18 23:27:07 +01:00
INSTALL doc: clarify configure features 2011-04-07 02:54:12 +02:00
LICENSE license: Mention that vf_interlace is GPL, not LGPL 2014-08-28 19:47:43 +02:00
Makefile configure: add support for neon intrinsics 2014-07-21 23:18:29 +02:00
README doc: Add more information in the README 2014-08-16 00:49:22 +02:00
README.md doc: Add more information in the README 2014-08-16 00:49:22 +02:00
RELEASE Make the RELEASE file match with the most recent tag 2014-12-01 07:51:14 -05:00
arch.mak aarch64: add armv8 CPU flag 2014-04-06 21:18:49 +02:00
avconv.c avconv: copy stream-level side data when streamcopying 2014-10-24 09:03:16 +02:00
avconv.h avconv: do not use the stream codec context for encoding 2014-06-01 08:33:21 +02:00
avconv_dxva2.c avconv_dxva2: define all used GUIDs directly instead of relying on the dxva2api.h header 2014-04-29 16:50:43 +02:00
avconv_filter.c avconv: fix leak in filter error 2014-10-17 09:55:46 +01:00
avconv_opt.c check memory errors from av_strdup() 2014-12-18 23:27:14 +01:00
avconv_vda.c avconv: Support VDA hwaccel 2014-05-11 15:00:03 +02:00
avconv_vdpau.c avconv_vdpau: allocate video surface of VDPAU-specified size 2014-12-25 20:47:49 +01:00
avplay.c avplay: Use av_gettime_relative 2014-10-24 09:53:44 +03:00
avprobe.c check memory errors from av_strdup() 2014-12-18 23:27:14 +01:00
cmdutils.c check memory errors from av_strdup() 2014-12-18 23:27:14 +01:00
cmdutils.h cmdutils: Mark exit_program as av_noreturn 2014-03-28 00:40:43 +01:00
cmdutils_common_opts.h avplay: Accept cpuflags option 2013-10-22 10:49:31 +02:00
common.mak build: export library dependencies in ${name}_FFLIBS 2014-05-20 00:43:51 +02:00
configure libavformat: Only use MoveFileExA when targeting the desktop API subset 2014-12-19 23:24:47 +02:00
library.mak build: Support executable only ldflags 2014-07-21 22:18:35 +02:00
version.sh Drop git- prefix from version labels 2011-06-19 19:41:23 +01:00

README.md

Libav

Libav is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libavresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • avconv is a command line toolbox to manipulate, convert and stream multimedia content.
  • avplay is a minimalistic multimedia player.
  • avprobe is a simple analisys tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Conding examples are available in the doc/example directory.

License

Libav codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.