我正在使用libvlc 3.0.0(我也尝试过2.2.0)在Windows 7和Visual Studio 2012上从h264编码的mp4文件(不包括声音,仅包括视频帧)中捕获帧。我可以播放,暂停,停下来寻求前进没有任何问题。但是,当我尝试向后搜索时,就会遇到问题:
libvlc_media_player_set_position
(或libvlc_media_player_set_time
),似乎就可以了。但是vlc停止发送帧接收到的回调(换句话说,播放器卡住),直到到达libvlc_media_player_set_position
函数之前的相同(或下一帧)帧为止。counter = 0;
while (true)
{
sleep(40); // 25 hz
++counter;
if(counter % 100 = 0)
{
// assuming current_position > 0.1f
libvlc_media_player_set_position(p_mi, 0.1f);
}
}
counter = 0;
while (true)
{
sleep(40); // 25 hz
++counter;
if(counter % 100 = 0)
{
// assuming current_position > 0.1f
libvlc_media_player_stop(p_mi);
libvlc_media_player_play(p_mi);
libvlc_media_player_set_position(p_mi, 0.1f);
}
}
这种情况下的问题是,如果我保持向后定位一段时间,则会收到错误消息(vlc将错误打印到命令行)
core decoder error: cannot continue streaming due to errors
。发生此错误后,它停止播放(再次卡住),并且下次尝试查找时,出现“访问冲突”错误:Unhandled exception at 0x... (libavcodec_plugin.dll) in vlctest.exe: 0xC0000005: Access violation reading location 0x00000040
首先重新启动视频播放以进行搜索感觉不对。我想念什么吗?
提前致谢!
最佳答案
我不知道我以前在哪里弄乱它,但是我下载了当前的每晚生成vlc-3.0.0-git-20151221-0002-win32-debug.zip videolan nightly builds,并且现在可以使用了。
关于c++ - 向后搜索时libvlc_media_player_set_position失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34262277/