// // Created by tangchao on 2021/11/16. // #ifndef PSDK_DEMO_FFMPEG_TC_H #define PSDK_DEMO_FFMPEG_TC_H //tc开始 #include #include #include #include #include #include #include #include #include #include #include #include #include #include "libavdevice/avdevice.h" #include #include //usleep #define STREAM_DURATION 50.0 /*录制视频的持续时间 秒*/ #define STREAM_FRAME_RATE 15 /* images/s 这里可以根据摄像头的采集速度来设置帧率 */ #define STREAM_PIX_FMT AV_PIX_FMT_YUV420P /* default pix_fmt */ #define SCALE_FLAGS SWS_BICUBIC //tc结束 //存放视频的宽度和高度 int video_width; int video_height; typedef struct IntputDev { AVCodecContext *pCodecCtx; AVCodec *pCodec; AVFormatContext *v_ifmtCtx; int videoindex; struct SwsContext *img_convert_ctx; AVPacket *in_packet; AVFrame *pFrame,*pFrameYUV; /*下一帧的点数*/ int64_t next_pts; }IntputDev; char *getsystemtime(); AVFrame *get_video_frame(IntputDev* input); //static void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt); void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, char **data, int *datasize); char * encode2(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, int *datasize); #endif //PSDK_DEMO_FFMPEG_TC_H