我正在使用GSteamer,并且我想将I420转换为BGR格式。 管道:
gst-launch-1.0 filesrc location= ./Big_Buck_Bunny_1080_10s_1MB.mp4 ! qtdemux ! h264parse ! avdec_h264 ! fakesink
我不使用 videoconvert 插件,因为它需要很多CPU工作量。 我看到avdec_h264插件支持BGR格式,我尝试选择BGR格式,但是输出始终为I420格式(“ avdec_h264!video / x-raw,format = BGR!”)。
我尝试将其转换为源代码( gst-libav / ext / libav / gstavvidec.c \ gst_ffmpeg_pixfmt_to_videoformat() )中的BGR格式,但出现错误在(gst-libav / gst-libs / ext / libav / libavcodec / decode.c)中,1606
for (i = 0; i < num_planes; i++) {
av_assert0(frame->data[i]);
}
我的方式正确吗?我应该在deocode.c中修改num_planes吗? 如果这不是正确的方法,我可以通过将OpenCV与GStreamer管道一起使用来转换格式吗?
如果有什么好的方法,也请告诉我。