检测关键帧的命令 [ffprobe:Windows]:
ffprobe -f dshow -video_pin_name 1 -i video="H264 USB Camera" -show_entries frame=key_frame
我的相机上的命令输出是每秒一次的关键帧。使用 avformat/av_read_frame(AVInputContext *, AVPacket *) 并检查输出数据包标志,in_packet->flags & AV_PKT_FLAG_KEY
我没有收到任何设置了 AV_PKT_FLAG_KEY 的数据包。我设置 input_context 的方式与在 ffprobe 中类似:
av_dict_set(&opt, "video_pin_name", "1", 0);
从相机读取帧时,我需要做什么不同的事情吗?我可以确认这些帧确实具有有效的 PTS 和 DTS,但它们都没有显示key_frame
设置标志。