Comando para detectar quadros-chave [ffprobe:Windows]:
ffprobe -f dshow -video_pin_name 1 -i video="H264 USB Camera" -show_entries frame=key_frame
A saída do comando na minha câmera é um quadro -chave por segundo . Usando avformat/av_read_frame(AVInputContext *, AVPacket *) e verificando os sinalizadores de pacotes de saída, ou seja in_packet->flags & AV_PKT_FLAG_KEY
, não estou recebendo nenhum pacote com a AV_PKT_FLAG_KEY definida. Estou configurando o input_context de forma semelhante à que faço no ffprobe:
av_dict_set(&opt, "video_pin_name", "1", 0);
Preciso fazer algo diferente ao ler os quadros da câmera? Posso confirmar que os quadros têm um PTS e um DTS válidos, mas nenhum deles mostra key_frame
o sinalizador definido.