In the encode-example.c code there is a call to fb_metrics = &(ctx->stream_ame_encoding_framebuffer_metrics) which returns the y offset, u offset, and v offset that the encoder wants. I switched the libimxvpuapi2 library for this. Okay, the issue is the alignment and offsets of the y and uv channels. $gst-launch-1.0 filesrc location="1080_overlay.nv12" ! rawvideoparse use-sink-caps=false width=1920 height=1080 format=nv12 ! vpuenc_h264 ! queue ! flvmux ! filesink location="gst_overlay_1080.mp4" You'll notice there's another green bar at the bottom of the screen this time, and something is messed up in the overlay text.Īs with my color conversion problems, I tried using gstreamer to convert the raw video file and gstreamer worked perfectly. I also modified the call to imx_vpu_calc_framebuffer_sizes so that chroma_interleave is 1 I made sure to set the vpu_open_param.chroma_interleave=1 so that the VPU knows it is an NV12 stream. I modified the encode-example in libimxvpuapi ( ) to encode 1080p video, and use the raw NV12 stream recorded previously. I've changed all my code to use NV12, and I'm trying to do h264 encoding. Using gstreamer is a guide, I discovered that the NV12 format resulted in a perfect output from the IPU. Long story short, converting UYVY to YUV420 frames resulted in a green bar on the right side of the screen. I've had a real tough time trying to push my camera up from 720p to 1080p.
0 Comments
Leave a Reply. |