2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
FFmpeg related records:
Sample project:
【FFmpeg】Call ffmpeg library to implement 264 soft editing
【FFmpeg】Call ffmpeg library to implement 264 soft decoding
【FFmpeg】Call ffmpeg library for RTMP push and pull streaming
【FFmpeg】Call ffmpeg library to perform SDL2 decoding and rendering
Process analysis:
[FFmpeg] Simple analysis of the main functions in the encoding link
[FFmpeg] Simple analysis of the main functions on the decoding link
Structural analysis:
【FFmpeg】AVCodec structure
【FFmpeg】AVCodecContext structure
【FFmpeg】AVStream structure
【FFmpeg】AVFormatContext structure
【FFmpeg】AVIOContext structure
【FFmpeg】AVPacket structure
Function analysis:
【General】
【FFmpeg】avcodec_find_encoder和avcodec_find_decoder
[FFmpeg] Initialization and release of key structures (AVFormatContext, AVIOContext, etc.)
【FFmpeg】avcodec_open2 function
【Streaming】
【FFmpeg】avformat_open_input function
【FFmpeg】avformat_find_stream_info function
【FFmpeg】avformat_alloc_output_context2 function
【FFmpeg】avio_open2 function
【FFmpeg】avformat_write_header function
【FFmpeg】av_write_frame function
【coding】
【FFmpeg】avcodec_send_frame function
The main function of the function is to send a compressed packet to the decoder for decoding. The definition is located in libavcodecdecode.c
/**
* Supply raw packet data as input to a decoder.
*
* Internally, this call will copy relevant AVCodecContext fields, which can
* influence decoding per-packet, and apply them when the packet is actually
* decoded. (For example AVCodecContext.skip_frame, which might direct the
* decoder to drop the frame contained by the packet sent with this function.)
*
* @warning The input buffer, avpkt-