2024年1月3日发(作者:)

int out_size = avcodec_encode_video(c, video_outbuf, video_outbuf_size, picture); if (out_size > 0) { AVPacket pkt; av_init_packet(&pkt); = av_rescale_q(c->coded_frame->pts, c->time_base, video_st->time_base); if (c->coded_frame->key_frame) { |= PKT_FLAG_KEY; } _index = video_st->index; = video_outbuf; = out_size;

ret = av_write_frame(oc, &pkt); } } } if (video_st) { avcodec_close(video_st->codec); av_free(picture); av_free(video_outbuf); } av_write_trailer(oc); for (int j=0; jnb_streams; j ) { av_freep(&oc->streams[j]->codec); av_freep(&oc->streams[j]); } if (!(fmt->flags & AVFMT_NOFILE)) { url_fclose(oc->pb); } av_free(oc); fclose(fin); DeleteFile(YUVfile); //AfxMessageBox("视频已保存!");

return TRUE;}