1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Go to file
Anton Khirnov 4fce3bab64 fftools/ffmpeg: use a separate counter for encoded packet data size
update_video_stats() currently uses OutputStream.data_size to print the
total size of the encoded stream so far and the average bitrate.
However, that field is updated in the muxer thread, right before the
packet is sent to the muxer. Not only is this racy, but the numbers may
not match even if muxing was in the main thread due to bitstream
filters, filesize limiting, etc.

Introduce a new counter, data_size_enc, for total size of the packets
received from the encoder and use that in update_video_stats(). Rename
data_size to data_size_mux to indicate its semantics more clearly.

No synchronization is needed for data_size_mux, because it is only read
in the main thread in print_final_stats(), which runs after the muxer
threads are terminated.
2022-08-29 15:42:11 +02:00
compat compat: add msvc windres wrapper 2022-08-13 14:42:52 +02:00
doc doc/git-howto.texi: Document commit signing 2022-08-28 22:06:45 +02:00
ffbuild ffbuild/common: Fix CPPFLAGS applied for compiling C++ files 2022-05-24 21:30:52 +02:00
fftools fftools/ffmpeg: use a separate counter for encoded packet data size 2022-08-29 15:42:11 +02:00
libavcodec avcodec/videotoolboxenc: Add CBR option to H264 and HEVC encoder 2022-08-29 09:34:20 -04:00
libavdevice configure: always enable gnu_windres if available 2022-08-13 14:42:36 +02:00
libavfilter avfilter/af_silenceremove: do not trim non-silence from start 2022-08-23 22:18:02 +02:00
libavformat avformat/mov: Check count sums in build_open_gop_key_points() 2022-08-28 22:06:45 +02:00
libavutil lavc/vaapi: Switch preferred 8bit 444 format to VUYX 2022-08-25 19:04:10 -07:00
libpostproc configure: always enable gnu_windres if available 2022-08-13 14:42:36 +02:00
libswresample lswr: take const AVChannelLayout* in swr_alloc_set_opts2() 2022-08-24 18:31:05 -05:00
libswscale libswscale: add support for VUYX format 2022-08-25 19:03:49 -07:00
presets
tests libswscale: add support for VUYX format 2022-08-25 19:03:49 -07:00
tools tools/target_dec_fuzzer: Adjust threshold for MVDV 2022-08-28 22:06:45 +02:00
.gitattributes
.gitignore gitignore: add config_components.h 2022-03-17 18:35:41 -03:00
.mailmap
.travis.yml
Changelog lavc/vaapi_encode: enable 8bit 4:4:4 encoding for HEVC and VP9 2022-08-09 09:22:49 -07:00
configure configure: enable the av1_frame_split bsf for the av1 decoder 2022-08-23 14:30:28 +02:00
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL.md
LICENSE.md
MAINTAINERS MAINTAINERS: Add ED25519 key for signing my commits in the future 2022-08-09 21:57:31 +02:00
Makefile Makefile: Prompt for reconfigure on lavc/hwaccels.h modification 2022-07-01 00:34:38 +02:00
README.md
RELEASE RELEASE: update after 5.1 branch 2022-07-13 00:31:42 +02:00

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 means to alter decoded audio and video through a directed graph of connected 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.
  • 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.