有没有人知道如何使用ffmpeg + Opengl连续播放视频?因为这只播放一次
tiempo = glfwGetTime();
duracion = 1.0/25.0; // 1 second / 25 fps
while(1){
...
if(glfwGetTime() > tiempo + duracion){
if(av_read_frame(pFormatCtx,&packet) >= 0){
if(packet.stream_index == 0){
avcodec_decode_video2(pCodecCtx,pFrame,&frameFin,&packet);
if(frameFin)sws_scale(img_convert_ctx,pFrame->data,pFrame->linesize,0,pCodecCtx->height,pFrameRGB->data,pFrameRGB->linesize);
}
av_free_packet(&packet);
}
tiempo += duracion;
}
...
}
我知道av_read_frame函数(...)如果文件结尾则返回0。但是,如何再次使该函数返回零以外的值? o如何让视频不断重复?
答案 0 :(得分:2)
来自documentqtion lavf_decoding.html#ga4fdb3084415a82e3810de6ee60e46a61“> http://ffmpeg.org/doxygen/trunk/group_ lavf _decoding.html#ga4fdb3084415a82e3810de6ee60e46a61
0如果OK,<错误或文件结尾时为0
所以如果< 0则调用av_seek_frame
返回开始(同一个文档)