使用ffmpeg将内存中的yuv图片数据用h264编码,然后以rtsp流推送出去,应该怎么设置编码后的dts,pts,time_base等这些参数呢。yuv图片数据自带显示时间戳单位ms。
1条回答 默认 最新
辽宁统招专升本&单招升学肖老师 2024-01-03 18:53关注使用ffmpeg推送YUV流媒体数据,首先需要创建一个SwsContext,然后使用该上下文转换图像格式,最后将转换后的图像数据发送到流媒体服务器。
具体步骤如下:
创建SwsContext。
structSwsContext*swsctx=sws_getContext(width,height,fmt,width,height,AV_PIX_FMT_YUV420P,SWS_BICUBIC,NULL,NULL,NULL);将解码后的图像数据转换为YUV格式。
video_input.img_convert_ctx=swsctx;将解码后的数据包保存到video_input结构体中。
video_input.in_packet=packet; ```将解码器信息保存到video_input结构体中。 ```c video_input.pcodecCtx=context; video_input.pCodec=video_avcodec;将输入流读取头部信息保存到video_input结构体中。
video_input.v_ifmtCtx=ps;将视频流信息保存到video_input结构体中。 ```c video_input.videoindex=videostream;将解码后的视频帧保存到video_input结构体中。
video_input.pFrame=frame;解决 无用评论 打赏 举报