avcodec_send_frame 旧版接口
时间: 2023-07-23 09:36:28 浏览: 140
avcodec_sample.rar_avcodec_avcodec_sample_ffmpeg_ffmpeg mpeg4_l
avcodec_encode_video2 是旧版 avcodec_send_frame 函数的接口,用于将视频帧编码为压缩数据。其函数原型为:
```c
int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr);
```
其中,avctx 参数是指向 AVCodecContext 结构体的指针,avpkt 参数是指向 AVPacket 结构体的指针,frame 参数是指向 AVFrame 结构体的指针,got_packet_ptr 参数是指向整型变量的指针,用于表示是否成功编码出压缩数据。函数返回值为编码后的数据大小,即 AVPacket 结构体的 size 字段值,如果返回值小于 0 则表示编码失败。
使用该函数时,需要先通过 avcodec_open2 函数打开编码器,并设置 AVCodecContext 结构体的各项参数,再将待编码的视频帧传入函数进行编码。编码成功后,AVPacket 结构体中的数据指针(data)和大小(size)字段将被设置为压缩后的数据。
需要注意的是,该函数已经被弃用,建议使用 avcodec_send_frame 和 avcodec_receive_packet 函数来代替。
阅读全文