ffmpeg相关API(2)

av_find_input_format()

cpp 复制代码
/**
 * 根据输入格式的短名称查找AVInputFormat。
*/
ff_const59 AVInputFormat *av_find_input_format(const char *short_name);

avformat_open_input()

cpp 复制代码
/**
 * 打开一个输入流并读取头。编解码器未打开。 * 必须使用avformat_close_input()关闭流。
 *
 * @param ps Pointer to user-supplied AVFormatContext (allocated by avformat_alloc_context).
 *           May be a pointer to NULL, in which case an AVFormatContext is allocated by this
 *           function and written into ps.
 *           Note that a user-supplied AVFormatContext will be freed on failure.
 * @param url 要打开的流的URL。
 * @param fmt If non-NULL, this parameter forces a specific input format.
 *            Otherwise the format is autodetected.
 * @param options  A dictionary filled with AVFormatContext and demuxer-private options.
 *                 On return this parameter will be destroyed and replaced with a dict containing
 *                 options that were not found. May be NULL.
 *
 * @return 0 on success, a negative AVERROR on failure.
 *
 * @note If you want to use custom IO, preallocate the format context and set its pb field.
 */
int avformat_open_input(AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options);

avformat_close_input()

cpp 复制代码
/**
 关闭打开的输入AVFormatContext。释放它和里面的所有东西 并将 *s设置为NULL。
 */
void avformat_close_input(AVFormatContext **s);

av_read_frame()

cpp 复制代码
/**
 * 返回流的下一帧.
 * This function returns what is stored in the file, and does not validate
 * that what is there are valid frames for the decoder. It will split what is
 * stored in the file into frames and return one for each call. It will not
 * omit invalid data between valid frames so as to give the decoder the maximum
 * information possible for decoding.
 *
 * If pkt->buf is NULL, then the packet is valid until the next
 * av_read_frame() or until avformat_close_input(). Otherwise the packet
 * is valid indefinitely. In both cases the packet must be freed with
 * av_packet_unref when it is no longer needed. For video, the packet contains
 * exactly one frame. For audio, it contains an integer number of frames if each
 * frame has a known fixed size (e.g. PCM or ADPCM data). If the audio frames
 * have a variable size (e.g. MPEG audio), then it contains one frame.
 *
 * pkt->pts, pkt->dts and pkt->duration are always set to correct
 * values in AVStream.time_base units (and guessed if the format cannot
 * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format
 * has B-frames, so it is better to rely on pkt->dts if you do not
 * decompress the payload.
 *
 * @return 0 if OK, < 0 on error or end of file
 */
int av_read_frame(AVFormatContext *s, AVPacket *pkt);

av_init_packet()

cpp 复制代码
/**
 * 使用默认值初始化数据包的可选字段。.
 *
 * 注意,这并不涉及data和size成员,它们必须分别初始化。
 *
 * @param pkt packet
 */
void av_init_packet(AVPacket *pkt);

av_packet_unref()

cpp 复制代码
/**
 * 把包擦干净。
 *
 * 取消引用数据包所引用的缓冲区,并重置
 * 其余分组字段设置为它们的默认值。
 *
 * @param pkt The packet to be unreferenced.
 */
void av_packet_unref(AVPacket *pkt);

av_packet_alloc()

cpp 复制代码
/* 分配AVPacket并将其字段设置为默认值。  结果
 * 必须使用av_packet_free()释放结构。
 *
 * @return一个AVPacket,在失败时填充默认值或NULL。
 *
 * @注意,这仅分配AVPacket本身,而不是数据缓冲区。那些
 * 必须通过诸如av_new_packet的其它手段来分配。
 */
AVPacket *av_packet_alloc(void);

av_packet_free()

cpp 复制代码
/**
   释放数据包,如果数据包被引用计数,它将
 * 未引用第一。
 *
 * @param要释放的pkt包。指针将被设置为NULL。
 * @note传递NULL是一个空操作。
 */
void av_packet_free(AVPacket **pkt);
相关推荐
Android系统攻城狮5 分钟前
Linux FFmpeg深度解析之av_parser_init调用流程与实战(二十一)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
Android系统攻城狮14 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
重生之我是萧炎1 天前
ffmpeg官方下载安装教程(提供安装包)
ffmpeg
zslefour2 天前
使用ffmpeg遍历获取音频文件相关信息
ffmpeg
Android系统攻城狮2 天前
Linux FFmpeg深度解析之avcodec_parameters_from_context调用流程与实战(十六)
linux·运维·ffmpeg·音视频进阶·ffmpeg音视频·车载音视频进阶
Android系统攻城狮2 天前
Linux FFmpeg深度解析之avcodec_alloc_context3调用流程与实战(十四)
linux·运维·ffmpeg·车载音视频·音视频进阶·ffmpeg音视频进阶
菜鸟小芯2 天前
【Quectel Pi M2 实战】Day3 USB 摄像头图像采集:拍照、录像与踩坑记录(V4L2 + FFmpeg)
ffmpeg·嵌入式
Android系统攻城狮3 天前
Linux FFmpeg深度解析之av_dump_format调用流程与实战(十一)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
Android系统攻城狮3 天前
Linux FFmpeg深度解析之avcodec_find_decoder调用流程与实战(十二)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
Hommy883 天前
【直播切片工作台】第23章:媒体探测与转码:ffprobe 与 ffmpeg 封装
人工智能·ffmpeg·直播切片