Go to file
Steven Liu 863ebe6f83 avformat/flvenc: add add_keyframe_index option
Add keyframe index metadata
Used to facilitate seeking; particularly for HTTP pseudo streaming.
 1. read live streaming or file by sequence
 2. if use add_keyframe_index option, add a mark flag at the position,
    use to insert new context at the last step.
 3. add the keyframes *offset* and *timestamp* into a list
 4. if use add_keyframe_index option, shift the metadata data from
    mark flag offset
 5. insert the keyframes *offset* and *timestamp* from the list by
    sequence
 6. free the list
 7. end.

Add FATE test case;

Reviewed-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Steven Liu <liuqi@gosun.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-10 10:30:48 +08:00
compat compat/w32dlfcn.h: Add safe win32 dlopen/dlclose/dlsym functions. 2016-11-05 18:08:32 +11:00
doc avformat/flvenc: add add_keyframe_index option 2016-11-10 10:30:48 +08:00
libavcodec nut: add gray12 support 2016-11-10 01:18:43 +01:00
libavdevice lavd/xcbgrab: do not try to create refcounted packets. 2016-11-03 21:23:55 +01:00
libavfilter avfilter/vf_drawtext: fixed default/flt formatting ignoring offset parameter 2016-11-06 23:02:38 +01:00
libavformat avformat/flvenc: add add_keyframe_index option 2016-11-10 10:30:48 +08:00
libavresample Bump minor versions after 3.2 branchpoint to seperate release 2016-10-26 20:52:42 +02:00
libavutil pixfmt: Add GRAY12 2016-11-10 00:42:48 +01:00
libpostproc Bump minor versions after 3.2 branchpoint to seperate release 2016-10-26 20:52:42 +02:00
libswresample Bump minor versions after 3.2 branchpoint to seperate release 2016-10-26 20:52:42 +02:00
libswscale swscale: Add GRAY12 2016-11-10 00:49:29 +01:00
presets presets: remove moldering iPod presets 2014-06-17 16:15:04 -08:00
tests avformat/flvenc: add add_keyframe_index option 2016-11-10 10:30:48 +08:00
tools tools: fix grammar error 2016-10-09 20:09:00 +02:00
.gitattributes Treat all '*.pnm' files as non-text file 2014-11-28 17:52:43 -05:00
.gitignore Merge commit '6641819feedb086ebba3d2be89b8d33980f367e1' 2016-06-26 15:43:05 +02:00
.travis.yml Merge commit 'eda183287489b2c705843aa373a19c4e46fb2fec' 2015-11-22 17:12:24 +00:00
CONTRIBUTING.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3
CREDITS CREDITS: redirect to Git log, remove current outdated content 2013-01-31 18:02:52 +01:00
Changelog crystalhd: Switch to new decode API and remove the insanity 2016-11-02 13:47:30 -07:00
INSTALL.md INSTALL: add markdown syntax 2014-05-28 22:38:38 +02:00
LICENSE.md lavc: remove libfaac wrapper 2016-10-01 19:58:04 +01:00
MAINTAINERS MAINTAINERS: Add myself to flvenc 2016-11-09 17:49:19 +01:00
Makefile Merge commit '6641819feedb086ebba3d2be89b8d33980f367e1' 2016-06-26 15:43:05 +02:00
README.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
RELEASE RELEASE: Update for past 3.2 branch 2016-10-26 20:52:43 +02:00
arch.mak mips: rename mipsdspr1 to mipsdsp 2015-12-04 02:35:42 +01:00
cmdutils.c cmdutils: add show_demuxers and show_muxers 2016-11-08 01:56:31 +01:00
cmdutils.h cmdutils: add show_demuxers and show_muxers 2016-11-08 01:56:31 +01:00
cmdutils_common_opts.h cmdutils: add show_demuxers and show_muxers 2016-11-08 01:56:31 +01:00
cmdutils_opencl.c all: use FFDIFFSIGN to resolve possible undefined behavior in comparators 2015-11-03 16:28:30 -05:00
common.mak Merge commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1' 2016-06-27 19:39:46 +02:00
configure avformat/avisynth.c: Use new safe dlopen code. 2016-11-05 18:08:53 +11:00
ffmpeg.c ffmpeg: don't overwrite av_bsf_receive_packet return value before checking it 2016-11-05 00:04:27 -03:00
ffmpeg.h ffmpeg: parameters for filter thread counts 2016-11-06 15:27:25 +01:00
ffmpeg_cuvid.c doc: fix spelling errors 2016-10-21 23:58:47 +02:00
ffmpeg_dxva2.c Merge commit '18c506e9e6e8df8b1d496d093077b8240ea68c28' 2016-06-26 15:34:01 +02:00
ffmpeg_filter.c ffmpeg: parameters for filter thread counts 2016-11-06 15:27:25 +01:00
ffmpeg_opt.c ffmpeg: parameters for filter thread counts 2016-11-06 15:27:25 +01:00
ffmpeg_qsv.c ffmpeg/qsv: fix QSV-accelerated transcode performance drop issue. 2016-08-16 17:09:33 +02:00
ffmpeg_vaapi.c ffmpeg_vaapi: fix choice of decoder_format 2016-09-29 01:23:52 +02:00
ffmpeg_vdpau.c Merge commit 'f72db3f2f3a8c83a4f5dede8fa03434b2bf676c6' 2016-06-26 15:29:39 +02:00
ffmpeg_videotoolbox.c ffmpeg/videotoolbox: protect UTGetOSTypeFromString on both VDA and VT 2015-10-15 10:22:31 +02:00
ffplay.c Merge commit 'beb62dac629603eb074a44c44389c230b5caac7c' 2016-10-07 13:16:36 +02:00
ffprobe.c lavf: add AV_DISPOSITION_TIMED_THUMBNAILS 2016-10-24 05:47:05 -05:00
ffserver.c ffserver: use AVStream.codecpar in open_input_stream() 2016-11-08 12:12:19 +01:00
ffserver_config.c ffserver: Throw ffm.h out its not used except for a constant that is part of the format 2016-11-07 19:27:40 +01:00
ffserver_config.h ffserver: Throw ffm.h out its not used except for a constant that is part of the format 2016-11-07 19:27:40 +01:00
library.mak Merge commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1' 2016-06-27 19:39:46 +02:00
version.sh version.sh: Fix spurious rebuilds. 2016-03-10 09:53:10 +01:00

README.md

FFmpeg README

FFmpeg 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.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • ffserver is a multimedia streaming server for live broadcasts.
  • 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

Coding examples are available in the doc/examples directory.

License

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

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process and will be ignored.