ffmpeg
結構いろいろな関数が動くんですが動画から抜き出したframeからGDImageを作ることができないようです.
以下さっぱり面白く無いので
PHP_FUNCTION(toGDImage){ ff_frame_context *ff_frame; gdimage *gd_img; GET_FRAME_RESOURCE(getThis(), ff_frame); _php_convert_frame(ff_frame, PIX_FMT_RGBA32); return_value->value.lval = _php_get_gd_image(ff_frame->width, ff_frame->height); return_value->type = IS_RESOURCE; FFMPEG_PHP_FETCH_RESOURCE(gd_img, &return_value); if(_php_avframe_to_gd_image(ff_frame->av_frame, gd_img, ff_frame->width, ff_frame->height); } }
この中の関数
#define GET_FRAME_RESOURCE(ffmpeg_frame_object, ffmpeg_frame){ zval ** _tmp_zval; if(zend_hash_find(Z_OBJPROP_P(ffmpeg_frame_object), "ffmpeg_frame", sizeof("ffmpeg_frame"), (void **)&_tmp_zval) == FAILURE){ zend_error(E_ERROR, "Unable to locate ffmpeg_frame resource in this object"); RETURN_FALSE; } ZEND_FETHC_RESOURCE(ffmpeg_frame, ff_frame_context*, _tmp_zval, -1, "ffmpeg_frame", le_ffmpeg_frame); }
調べる関数
_php_convert_frame();
_php_get_gd_image();
IS_RESOURCE;
FFMPEG_PHP_FETCH_RESOURCE();
_php_avframe_to_gd_image();
Z_OBJPROP_P();
zend_hash_find();
ZEND_FETHC_RESOURCE();
RETURN_FALSE;