gnattu e0f403dfdb ffprobe: avoid runaway only_first_vframe probing
only_first_vframe originally waited for the first decoded frame from every
video stream. That breaks on files with multiple video streams where one
target stream never reaches "first frame seen" in this path.

For example, a Matroska file with one real HEVC video stream and two
attached-picture streams (PNG and JPEG). With -threads 1, all three streams
were marked finished quickly. With -threads 0, the attached PNG stream was
opened with auto threading, its only packet was consumed, but
avcodec_receive_frame() returned EAGAIN and no frame was emitted. Since that
stream had no second packet, it never became finished. ffprobe then kept
demuxing the rest of the file while waiting for all target video streams to
finish, which could read essentially to EOF and appear to consume unbounded
memory.

Fix this in two ways:
- exclude attached-picture streams from the only_first_vframe target set, so
the mode only waits for real video streams
- change the safety fallback from counting packets for unresolved target
streams to counting overall scanned packets, so even unknown future cases
still terminate instead of scanning forever

This preserves the intended "first real video frame" behavior while making the
mode safe for problematic multi-stream inputs.
2026-04-04 12:30:10 +08:00
2026-03-22 19:46:27 +08:00
2025-04-17 22:34:15 +08:00
2025-11-28 20:59:56 +08:00
2025-04-17 22:34:15 +08:00
2025-11-28 20:59:56 +08:00
2025-11-28 20:59:56 +08:00
2025-04-17 22:34:15 +08:00
2025-11-28 20:59:56 +08:00
2025-11-28 20:59:56 +08:00
2025-11-28 20:59:56 +08:00
2025-09-18 17:31:10 +08:00
2025-04-17 22:34:15 +08:00
2025-11-28 20:59:56 +08:00
2026-03-22 19:46:27 +08:00
2014-07-19 21:38:16 +02:00
2025-09-18 17:31:10 +08:00
2025-04-17 22:34:15 +08:00
2024-08-03 18:29:32 +08:00
2025-11-28 20:59:56 +08:00
2026-03-30 22:55:43 +08:00
2025-11-28 20:59:56 +08:00
2025-09-18 17:31:10 +08:00
2016-10-29 18:39:40 +02:00
2014-03-27 13:53:19 +01:00
2014-03-27 13:53:19 +01:00
2014-03-27 13:53:19 +01:00
2014-03-27 13:53:19 +01:00
2023-11-11 22:21:49 +08:00
2026-03-15 17:36:33 +08:00
2025-04-17 22:34:15 +08:00
2025-04-17 22:34:15 +08:00
2020-07-15 18:29:00 +08:00
2025-09-18 17:31:10 +08:00
2025-04-17 22:34:15 +08:00
2022-04-27 20:24:39 +08:00
2025-11-28 20:59:56 +08:00
2025-04-17 22:34:15 +08:00
2025-11-28 20:59:56 +08: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.

S
Description
FFmpeg for Jellyfin with custom extensions and enhancements
Readme
81 MiB
Languages
C 89.2%
Assembly 8.2%
Makefile 1.3%
Shell 0.5%
C++ 0.3%
Other 0.4%