小结
之前研究了下ffmpeg自定义编解码器的编写,为了避免忘记,现在小结一下。如果我们想添加自己的库到ffmpeg中,比如添加私有的协议,自定义编解码器等,都可以按照本文描述去添加。
(avdevice)ffmpeg自定义输出设备(OPENGL)
研究opengl自定义输出设备是怎么在ffmpeg中接入的.
接入包含文件如下:opengl-enc.c:
1).定义上下文结构体OpenGLContext
2).定义函数opengl_write_header
opengl_write_packet
opengl_write_frame
opengl_write_trailer
opengl_control_message
3).定义AVOutputFormat的结构体ff_opengl_muxer
AVOutputFormat ff_opengl_muxer={
.name="opengl",
.long_name=NULL_IF_CONFIG_SMALL("OpenGLoutput"),
.priv_data_size=sizeof(OpenGLContext),
.audio_codec=AV_CODEC_ID_NONE,
.video_codec=AV_CODEC_ID_RAWVIDEO,
.write_header=opengl_write_header,
.write_packet=opengl_write_packet,
.write_uncoded_frame=opengl_write_frame,
.write_trailer=opengl_write_trailer,
.control_message=opengl_control_message,
.flags=AVFMT_NOFILE|AVFMT_VARIABLE_FPS|AVFMT_NOTIMESTAMPS,