VLC发布的API中不包含录像接口,因此搜索到相关帖子修改代码实现功能,参考的内容
https://blog.csdn.net/lvwx369/article/details/41484615
添加相关代码编译测试功能没法使用,继续搜索相关资料后解决,修改后的代码如下:
int libvlc_video_toggle_record( libvlc_media_player_t *p_mi,
const char *psz_filepath, const char *psz_filename )
{
input_thread_t *p_input = libvlc_get_input_thread( p_mi );
if(p_input == NULL)
return -1;
var_CreateGetString ( p_input, "input-record-path" );
var_SetString( p_input, "input-record-path", psz_filepath );
var_SetString( p_input, "sout-record-dst-prefix", psz_filename );
var_ToggleBool( p_input, "record");
vlc_object_release(p_input);
return 0;
}
对比原来的代码增加了
var_CreateGetString ( p_input, "input-record-path" );
我使用的版本是2.2.8,查看源代码发现"sout-record-dst-prefix"已经失效,已经被宏定义取代,所以设置这个参数已经没有意义。