MediaSource
An opened input: a local file or a URL. It owns the container cursor and per-stream resources, and closing it releases them all. Confine it to one coroutine context, because the underlying media objects are not safe to call concurrently.
An opened input: a local file or a URL. It owns the container cursor and per-stream resources, and closing it releases them all. Confine it to one coroutine context, because the underlying media objects are not safe to call concurrently.
An opened input: a local file or a URL. It owns the container cursor and per-stream resources, and closing it releases them all. Confine it to one coroutine context, because the underlying media objects are not safe to call concurrently.
An opened input: a local file or a URL. It owns the container cursor and per-stream resources, and closing it releases them all. Confine it to one coroutine context, because the underlying media objects are not safe to call concurrently.
An open container, over the codec module.
Opened from a MediaByteSource only. There is no filesystem in a browser, so the open(path) overloads refuse rather than pretending: whatever the caller has is already bytes.
Types
Properties
The CONTAINER's own bit rate estimate in bits per second, or null when it has none.
The CONTAINER's own bit rate estimate in bits per second, or null when it has none.
Read once at open, because it cannot change afterwards and because reading it lazily would mean touching the format context, which close frees.
The CONTAINER's own bit rate estimate in bits per second, or null when it has none.
The CONTAINER's own bit rate estimate in bits per second, or null when it has none.
The container's chapter table. Empty when the container declares none.
The container's chapter table. Empty when the container declares none.
The container's chapter table. Empty when the container declares none.
The container's chapter table. Empty when the container declares none.
What the batch decode flows do when FFmpeg reports damaged data. CorruptData.Skip by default, which is what every backend always did, silently.
What the batch decode flows do when FFmpeg reports damaged data. CorruptData.Skip by default, which is what every backend always did, silently.
What the batch decode flows do when FFmpeg reports damaged data. CorruptData.Skip by default, which is what every backend always did, silently.
What the batch decode flows do when FFmpeg reports damaged data. CorruptData.Skip by default, which is what every backend always did, silently.
What the batch decode flows do when FFmpeg reports damaged data. CorruptData.Skip by default, which is what every backend always did, silently.
Packets and frames this source skipped as damaged since it was opened.
Packets and frames this source skipped as damaged since it was opened.
Packets and frames this source skipped as damaged since it was opened.
Packets and frames this source skipped as damaged since it was opened.
Packets and frames this source skipped as damaged since it was opened.
The container's duration in microseconds, or null when it declares none, as for a live stream.
The container's duration in microseconds, or null when it declares none, as for a live stream.
The container's duration in microseconds, or null when it declares none, as for a live stream.
The container's duration in microseconds, or null when it declares none, as for a live stream.
The container's duration in microseconds, or null when it declares none, as for a live stream.
Where durationMicros came from, or null when there is no duration (#134).
Where durationMicros came from, or null when there is no duration (#134).
Where durationMicros came from, or null when there is no duration (#134).
Where durationMicros came from, or null when there is no duration (#134).
Where durationMicros came from, or null when there is no duration (#134).
FFmpeg's name for the container format, such as mov,mp4,m4a,3gp,3g2,mj2 or matroska,webm.
FFmpeg's name for the container format, such as mov,mp4,m4a,3gp,3g2,mj2 or matroska,webm.
FFmpeg's name for the container format, such as mov,mp4,m4a,3gp,3g2,mj2 or matroska,webm.
FFmpeg's name for the container format, such as mov,mp4,m4a,3gp,3g2,mj2 or matroska,webm.
FFmpeg's name for the container format, such as mov,mp4,m4a,3gp,3g2,mj2 or matroska,webm.
Whether this input can seek at all, read from the input rather than assumed.
Whether this input can seek at all, read from the input rather than assumed.
Whether this input can seek at all, read from the input rather than assumed.
Whether this input can seek at all, read from the input rather than assumed.
Whether this input can seek at all, read from the input rather than assumed.
What a Matroska file says about its segment, its editions and their chapters, which a player needs to play ordered chapters and linked segments. Null for a source that is not Matroska, and for a Matroska file read through an FFmpeg that does not hand these facts out, so null means unknown rather than "no editions". Read when the source opens. See MatroskaSegment.
What a Matroska file says about its segment, its editions and their chapters, which a player needs to play ordered chapters and linked segments. Null for a source that is not Matroska, and for a Matroska file read through an FFmpeg that does not hand these facts out, so null means unknown rather than "no editions". Read when the source opens. See MatroskaSegment.
What a Matroska file says about its segment, its editions and their chapters, which a player needs to play ordered chapters and linked segments. Null for a source that is not Matroska, and for a Matroska file read through an FFmpeg that does not hand these facts out, so null means unknown rather than "no editions". Read when the source opens. See MatroskaSegment.
What a Matroska file says about its segment, its editions and their chapters, which a player needs to play ordered chapters and linked segments. Null for a source that is not Matroska, and for a Matroska file read through an FFmpeg that does not hand these facts out, so null means unknown rather than "no editions". Read when the source opens. See MatroskaSegment.
Read once, at the first ask, because the payloads it comes from never change after the open.
The assembled container-level view. Reads only members the source already exposes.
The container-level tags, such as title and artist: what the open read, and from then on the tags as of the last packet read. A live stream or a radio station can change them during playback, as a station's ICY title through FFmpeg's own http, an ID3 tag between ADTS frames or an FLV onMetaData does, and the read that brings such a change updates this, whether it ran in PacketReader.read or in a batch decode flow. The first packet a reader hands out after the change also carries it, as Packet.newContainerTags, so a player can show it when that packet plays rather than when it was read.
The container-level tags, such as title and artist: what the open read, and from then on the tags as of the last packet read. A live stream or a radio station can change them during playback, as a station's ICY title through FFmpeg's own http, an ID3 tag between ADTS frames or an FLV onMetaData does, and the read that brings such a change updates this, whether it ran in PacketReader.read or in a batch decode flow. The first packet a reader hands out after the change also carries it, as Packet.newContainerTags, so a player can show it when that packet plays rather than when it was read.
The container-level tags, such as title and artist: what the open read, and from then on the tags as of the last packet read. A live stream or a radio station can change them during playback, as a station's ICY title through FFmpeg's own http, an ID3 tag between ADTS frames or an FLV onMetaData does, and the read that brings such a change updates this, whether it ran in PacketReader.read or in a batch decode flow. The first packet a reader hands out after the change also carries it, as Packet.newContainerTags, so a player can show it when that packet plays rather than when it was read.
The container-level tags, such as title and artist: what the open read, and from then on the tags as of the last packet read. A live stream or a radio station can change them during playback, as a station's ICY title through FFmpeg's own http, an ID3 tag between ADTS frames or an FLV onMetaData does, and the read that brings such a change updates this, whether it ran in PacketReader.read or in a batch decode flow. The first packet a reader hands out after the change also carries it, as Packet.newContainerTags, so a player can show it when that packet plays rather than when it was read.
The container-level tags, such as title and artist: what the open read, and from then on the tags as of the last packet read. A live stream or a radio station can change them during playback, as a station's ICY title through FFmpeg's own http, an ID3 tag between ADTS frames or an FLV onMetaData does, and the read that brings such a change updates this, whether it ran in PacketReader.read or in a batch decode flow. The first packet a reader hands out after the change also carries it, as Packet.newContainerTags, so a player can show it when that packet plays rather than when it was read.
The audio stream TrackSelector.Default picks beside primaryVideo, from that picture's own programme when the source has programs, or null when there is no audio stream to pick. Picked from streams and programs as they stand, so a sound that a live source starts after its picture becomes this once a read has added it.
The audio stream TrackSelector.Default picks beside primaryVideo, from that picture's own programme when the source has programs, or null when there is no audio stream to pick. Picked from streams and programs as they stand, so a sound that a live source starts after its picture becomes this once a read has added it.
The audio stream TrackSelector.Default picks beside primaryVideo, from that picture's own programme when the source has programs, or null when there is no audio stream to pick. Picked from streams and programs as they stand, so a sound that a live source starts after its picture becomes this once a read has added it.
The audio stream TrackSelector.Default picks beside primaryVideo, from that picture's own programme when the source has programs, or null when there is no audio stream to pick. Picked from streams and programs as they stand, so a sound that a live source starts after its picture becomes this once a read has added it.
The audio stream TrackSelector.Default picks beside primaryVideo, from that picture's own programme when the source has programs, or null when there is no audio stream to pick. Picked from streams and programs as they stand, so a sound that a live source starts after its picture becomes this once a read has added it.
The first video stream that is not cover art (Disposition.attachedPicture). A file whose only video is its cover art returns that picture rather than null. Picked by TrackSelector.Default from streams as they stand.
The first video stream that is not cover art (Disposition.attachedPicture). A file whose only video is its cover art returns that picture rather than null. Picked by TrackSelector.Default from streams as they stand.
The first video stream that is not cover art (Disposition.attachedPicture). A file whose only video is its cover art returns that picture rather than null. Picked by TrackSelector.Default from streams as they stand.
The first video stream that is not cover art (Disposition.attachedPicture). A file whose only video is its cover art returns that picture rather than null. Picked by TrackSelector.Default from streams as they stand.
The first video stream that is not cover art (Disposition.attachedPicture). A file whose only video is its cover art returns that picture rather than null. Picked by TrackSelector.Default from streams as they stand.
Where this container's timeline begins, in microseconds. It is 0 for most mp4 files, and commonly around 1.4s for MPEG-TS.
Where this container's timeline begins, in microseconds. It is 0 for most mp4 files, and commonly around 1.4s for MPEG-TS.
Where the container's timeline begins, in microseconds. This is the offset between the absolute timeline libavformat uses and the content-relative timeline the public API uses. The expect declaration in commonMain describes both timelines in full.
Where this container's timeline begins, in microseconds. It is 0 for most mp4 files, and commonly around 1.4s for MPEG-TS.
Where this container's timeline begins, in microseconds. It is 0 for most mp4 files, and commonly around 1.4s for MPEG-TS.
Where the container's declaration and the decoder's output disagree, one entry per field.
Where the container's declaration and the decoder's output disagree, one entry per field.
Where the container's declaration and the decoder's output disagree, one entry per field.
Where the container's declaration and the decoder's output disagree, one entry per field.
Where the container's declaration and the decoder's output disagree, one entry per field.
Every stream the container has declared so far, in index order, including streams this build cannot decode.
Every stream the container has declared so far, in index order, including streams this build cannot decode.
Every stream the container has declared so far, in index order, including streams this build cannot decode.
Every stream the container has declared so far, in index order, including streams this build cannot decode.
Every stream the container has declared so far, in index order, including streams this build cannot decode.
The pre-open option keys FFmpeg did NOT consume on this open. Always empty for the plain open; a non-empty list after an options open is a caller mistake worth reading back and logging.
The pre-open option keys FFmpeg did NOT consume on this open. Always empty for the plain open; a non-empty list after an options open is a caller mistake worth reading back and logging.
The pre-open option keys FFmpeg did NOT consume on this open. Always empty for the plain open; a non-empty list after an options open is a caller mistake worth reading back and logging.
The pre-open option keys FFmpeg did NOT consume on this open. Always empty for the plain open; a non-empty list after an options open is a caller mistake worth reading back and logging.
The keys FFmpeg did not consume, which is a real answer now.
Functions
Decode this stream and emit each decoded frame, owned by the collector.
Decode this stream and emit each decoded frame, owned by the collector.
Decode this stream and emit each decoded frame, owned by the collector.
Decode this stream and emit each decoded frame, owned by the collector.
Decode this stream and emit each decoded frame, owned by the collector.
Decode several streams in one demuxer pass, emitting frames interleaved in container order and tagged by FrameInfo.streamIndex. This is the only correct way to transcode video and audio together: two concurrent decodedFrames flows would race the underlying demuxer, so that is rejected with IllegalStateException.
Decode several streams in one demuxer pass, emitting frames interleaved in container order and tagged by FrameInfo.streamIndex. This is the only correct way to transcode video and audio together: two concurrent decodedFrames flows would race the underlying demuxer, so that is rejected with IllegalStateException.
Decode several streams in one demuxer pass, emitting frames interleaved in container order and tagged by FrameInfo.streamIndex. This is the only correct way to transcode video and audio together: two concurrent decodedFrames flows would race the underlying demuxer, so that is rejected with IllegalStateException.
Decode several streams in one demuxer pass, emitting frames interleaved in container order and tagged by FrameInfo.streamIndex. This is the only correct way to transcode video and audio together: two concurrent decodedFrames flows would race the underlying demuxer, so that is rejected with IllegalStateException.
Decode several streams in one demuxer pass, emitting frames interleaved in container order and tagged by FrameInfo.streamIndex. This is the only correct way to transcode video and audio together: two concurrent decodedFrames flows would race the underlying demuxer, so that is rejected with IllegalStateException.
Decode and return the frame at (or first after) atMicros. Use this to extract a thumbnail. It seeks to the preceding keyframe and decodes forward to the exact target. Pair with Frame.encodeImage for jpg/png bytes.
Decode and return the frame at (or first after) atMicros. Use this to extract a thumbnail. It seeks to the preceding keyframe and decodes forward to the exact target. Pair with Frame.encodeImage for jpg/png bytes.
Decode and return the frame at (or first after) atMicros. Use this to extract a thumbnail. It seeks to the preceding keyframe and decodes forward to the exact target. Pair with Frame.encodeImage for jpg/png bytes.
Decode and return the frame at (or first after) atMicros. Use this to extract a thumbnail. It seeks to the preceding keyframe and decodes forward to the exact target. Pair with Frame.encodeImage for jpg/png bytes.
Decode and return the frame at (or first after) atMicros. Use this to extract a thumbnail. It seeks to the preceding keyframe and decodes forward to the exact target. Pair with Frame.encodeImage for jpg/png bytes.
Requests that every current and future blocking call on this source return with a typed FFmpegError.Interrupted failure.
Requests that every current and future blocking call on this source return with a typed FFmpegError.Interrupted failure.
Requests that every current and future blocking call on this source return with a typed FFmpegError.Interrupted failure.
Requests that every current and future blocking call on this source return with a typed FFmpegError.Interrupted failure.
Requests that every current and future blocking call on this source return with a typed FFmpegError.Interrupted failure.
Opens one independently driven decoder for stream.
Opens one independently driven decoder for stream.
Opens one decoder for one stream, for you to drive.
Opens one independently driven decoder for stream.
Opens one independently driven decoder for stream.
Opens the low-level demux cursor for exactly streams. The returned reader owns the source's cursor until it is closed; no batch decode or source-level seek may run concurrently.
Opens the low-level demux cursor for exactly streams. The returned reader owns the source's cursor until it is closed; no batch decode or source-level seek may run concurrently.
Opens a reader that hands out owned packets, one at a time, under your control.
Opens the low-level demux cursor for exactly streams. The returned reader owns the source's cursor until it is closed; no batch decode or source-level seek may run concurrently.
Opens the low-level demux cursor for exactly streams. The returned reader owns the source's cursor until it is closed; no batch decode or source-level seek may run concurrently.
Opens a decoder for the subtitle stream: Blu-ray (PGS), DVB and DVD images, and the text formats this build of FFmpeg decodes.
Opens a decoder for the subtitle stream as openSubtitleDecoder does, answering in real time when realTime is set (#181). Only CEA-608 closed captions stored as a stream of their own, such as a MOV c608 track, have such a mode, which ClosedCaptionDecoder describes: each answer is the screen as it now stands, from the packet that changed it, with no end, and an empty answer clears it. Buffered, the default, gives a caption only once it leaves the screen, too late for a player reading a little ahead. For every other format realTime changes nothing.
Opens a decoder for the subtitle stream: Blu-ray (PGS), DVB and DVD images, and the text formats this build of FFmpeg decodes.
Opens a decoder for the subtitle stream as openSubtitleDecoder does, answering in real time when realTime is set (#181). Only CEA-608 closed captions stored as a stream of their own, such as a MOV c608 track, have such a mode, which ClosedCaptionDecoder describes: each answer is the screen as it now stands, from the packet that changed it, with no end, and an empty answer clears it. Buffered, the default, gives a caption only once it leaves the screen, too late for a player reading a little ahead. For every other format realTime changes nothing.
Opens a decoder for the subtitle stream: Blu-ray (PGS), DVB and DVD images, and the text formats this build of FFmpeg decodes.
Opens a decoder for the subtitle stream as openSubtitleDecoder does, answering in real time when realTime is set (#181). Only CEA-608 closed captions stored as a stream of their own, such as a MOV c608 track, have such a mode, which ClosedCaptionDecoder describes: each answer is the screen as it now stands, from the packet that changed it, with no end, and an empty answer clears it. Buffered, the default, gives a caption only once it leaves the screen, too late for a player reading a little ahead. For every other format realTime changes nothing.
Opens a decoder for the subtitle stream: Blu-ray (PGS), DVB and DVD images, and the text formats this build of FFmpeg decodes.
Opens a decoder for the subtitle stream as openSubtitleDecoder does, answering in real time when realTime is set (#181). Only CEA-608 closed captions stored as a stream of their own, such as a MOV c608 track, have such a mode, which ClosedCaptionDecoder describes: each answer is the screen as it now stands, from the packet that changed it, with no end, and an empty answer clears it. Buffered, the default, gives a caption only once it leaves the screen, too late for a player reading a little ahead. For every other format realTime changes nothing.
Opens a decoder for the subtitle stream: Blu-ray (PGS), DVB and DVD images, and the text formats this build of FFmpeg decodes.
Opens a decoder for the subtitle stream as openSubtitleDecoder does, answering in real time when realTime is set (#181). Only CEA-608 closed captions stored as a stream of their own, such as a MOV c608 track, have such a mode, which ClosedCaptionDecoder describes: each answer is the screen as it now stands, from the packet that changed it, with no end, and an empty answer clears it. Buffered, the default, gives a caption only once it leaves the screen, too late for a player reading a little ahead. For every other format realTime changes nothing.
Tells the server of a live source that the caller has stopped reading, and says whether the source has any notion of that: true when it has and is now paused, false when it has none, in which case nothing was sent and the source reads on as before.
Tells the server of a live source that the caller has stopped reading, and says whether the source has any notion of that: true when it has and is now paused, false when it has none, in which case nothing was sent and the source reads on as before.
Tells the server of a live source that the caller has stopped reading, and says whether the source has any notion of that: true when it has and is now paused, false when it has none, in which case nothing was sent and the source reads on as before.
Tells the server of a live source that the caller has stopped reading, and says whether the source has any notion of that: true when it has and is now paused, false when it has none, in which case nothing was sent and the source reads on as before.
Lifts a pause: an RTSP stream asks its server to play on, which for a live stream is the live edge, and an rtmp:// input sends RTMP's unpause. FFmpeg's av_read_play does the work on every backend.
Lifts a pause: an RTSP stream asks its server to play on, which for a live stream is the live edge, and an rtmp:// input sends RTMP's unpause. FFmpeg's av_read_play does the work on every backend.
Lifts a pause: an RTSP stream asks its server to play on, which for a live stream is the live edge, and an rtmp:// input sends RTMP's unpause. FFmpeg's av_read_play does the work on every backend.
Lifts a pause: an RTSP stream asks its server to play on, which for a live stream is the live edge, and an rtmp:// input sends RTMP's unpause. FFmpeg's av_read_play does the work on every backend.
Seek the demuxer to micros, measured from the start of the content. Lands on the keyframe at or before that point, so the next decode flow resumes from there. Not allowed while a decode flow is collecting, since the demuxer cursor is shared.
Seek the demuxer to micros, measured from the start of the content. Lands on the keyframe at or before that point, so the next decode flow resumes from there. Not allowed while a decode flow is collecting, since the demuxer cursor is shared.
Seek the demuxer to micros, measured from the start of the content. Lands on the keyframe at or before that point, so the next decode flow resumes from there. Not allowed while a decode flow is collecting, since the demuxer cursor is shared.
Seek the demuxer to micros, measured from the start of the content. Lands on the keyframe at or before that point, so the next decode flow resumes from there. Not allowed while a decode flow is collecting, since the demuxer cursor is shared.
Seek the demuxer to micros, measured from the start of the content. Lands on the keyframe at or before that point, so the next decode flow resumes from there. Not allowed while a decode flow is collecting, since the demuxer cursor is shared.