mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-10-24 02:09:03 +03:00
843e83ed2d21fbedac58eeaff44dfb03468740f7
Demuxers and decoders declare the pre-roll an audio stream needs in AVCodecParameters.seek_preroll, but nothing used it, so a seek landed on the frame that holds the target and the first frame decoded there was not reliable. Move the target back by the largest pre-roll of the audio streams that are not discarded, whichever stream the seek is on, as they all land near the target, without leaving the range the caller asked for or going before the start of the stream. A finite end of the range moves back as much as the target, and an open end stays open. The pre-roll is rounded up so that it is never shorter than declared. The caller still discards what it decodes before the target, as it already had to for a seek that does not land on it. Seeks by byte or by frame number are left alone. When the start of the stream is unknown, the earlier target may come before the first packet, so if the seek fails, it is done again to the target the caller asked for. The seeks of the tests now land one frame earlier for AAC, and about 80 ms earlier for Opus in Matroska. A forward seek still lands forward, one frame earlier. A seek on the video stream just after a keyframe now lands on the keyframe before, to leave room for the pre-roll of AAC. A seek through concat lands earlier, as concat and the file it reads both move the target back. A seek close to the start of ADTS, whose start is unknown, lands at the start instead of failing.
…
…
FFmpeg README
FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.
Libraries
libavcodecprovides implementation of a wider range of codecs.libavformatimplements streaming protocols, container formats and basic I/O access.libavutilincludes hashers, decompressors and miscellaneous utility functions.libavfilterprovides means to alter decoded audio and video through a directed graph of connected filters.libavdeviceprovides an abstraction to access capture and playback devices.libswresampleimplements audio mixing and resampling routines.libswscaleimplements 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,ismindexandqt-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 Forgejo or 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.
See https://ffmpeg.org/developer.html for more information.
Description
FFmpeg - это набор библиотек и инструментов для обработки мультимедийного контента, такого как аудио, видео, субтитры и связанные с ними метаданные
https://ffmpeg.org/
Readme
435 MiB
Languages
C
88.7%
Assembly
8.3%
Makefile
1.6%
GLSL
0.4%
C++
0.3%
Other
0.5%