Closed pcb9382 closed 1 year ago
Hi @pcb9382, which Jetson are you using? Have you confirmed in it's module datasheet that it supports 8K decode?
Have you tried a standalone gstreamer pipeline with gst-launch-1.0
that works for decode on your video?
I now have an 8k (62404160 resolution) .mp4 file and use videoSource::Create() for NVDEC accelerated decoding, `videoSource inputStream; videoOutput* outputStream; if(argc>1) { commandLine cmdLine(argc, argv); inputStream = videoSource::Create(cmdLine,ARG_POSITION(0)); outputStream= videoOutput::Create(cmdLine,ARG_POSITION(0)); } else { argc=7; argv[0]=""; argv[1]="--input-width=7680"; argv[2]="--input-height=4320"; argv[3]="--input-codec=h264"; argv[4]="--input-rtsp-latency=10000"; argv[5]="--input-rate=15"; //argv[5]="rtsp://admin:ADMIN123456@192.168.1.64:554"; argv[6]="file:///home/pcb/test/vlc.mp4"; commandLine cmdLine(argc, argv); inputStream = videoSource::Create(cmdLine,ARG_POSITION(0)); outputStream= videoOutput::Create("1234.avi"); }
but the following error occurs: [gstreamer] initialized gstreamer, version 1.14.5.0 [gstreamer] gstDecoder -- creating decoder for /home/pcb/test/vlc.mp4 Opening in BLOCKING MODE
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:45.172: gst_caps_is_empty: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:45.172: gst_caps_truncate: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:45.172: gst_caps_fixate: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:45.172: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:45.172: gst_structure_get_string: assertion 'structure != NULL' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:45.173: gst_mini_object_unref: assertion 'mini_object != NULL' failed NvMMLiteOpen : Block : BlockType = 261 NVMEDIA: Reading vendor.tegra.display-size : status: 6 NvMMLiteBlockCreate : Block : BlockType = 261 [gstreamer] gstDecoder -- failed to discover stream info [gstreamer] gstDecoder -- pipeline string: [gstreamer] filesrc location=/home/pcb/test/vlc.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! nvvidconv ! video/x-raw(memory:NVMM), width=(int)7680, height=(int)4320, format=(string)NV12 ! videorate drop-only=true max-rate=15 ! appsink name=mysink [video] created gstDecoder from file:///home/pcb/test/vlc.mp4
gstDecoder video options:
-- URI: file:///home/pcb/test/vlc.mp4
extension: mp4 -- deviceType: file -- ioType: input -- codec: h264 -- width: 7680 -- height: 4320 -- frameRate: 15.000000 -- bitRate: 0 -- numBuffers: 4 -- zeroCopy: true -- flipMethod: none -- loop: 0 -- rtspLatency 10000
[gstreamer] gstEncoder -- codec not specified, defaulting to H.264 [gstreamer] gstEncoder -- pipeline launch string: [gstreamer] appsrc name=mysource is-live=true do-timestamp=true format=3 ! omxh264enc bitrate=4000000 ! video/x-h264 ! avimux ! filesink location=1234.avi [video] created gstEncoder from file:///home/pcb/test/1234.avi
gstEncoder video options:
-- URI: file:///home/pcb/test/1234.avi
extension: avi -- deviceType: file -- ioType: input -- codec: h264 -- width: 0 -- height: 0 -- frameRate: 30.000000 -- bitRate: 4000000 -- numBuffers: 4 -- zeroCopy: true -- flipMethod: none -- loop: 0 -- rtspLatency 2000
[gstreamer] opening gstDecoder for streaming, transitioning pipeline to GST_STATE_PLAYING [gstreamer] gstreamer changed state from NULL to READY ==> mysink [gstreamer] gstreamer changed state from NULL to READY ==> videorate0 [gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1 [gstreamer] gstreamer changed state from NULL to READY ==> nvvconv0 [gstreamer] gstreamer changed state from NULL to READY ==> omxh264dec-omxh264dec1 [gstreamer] gstreamer changed state from NULL to READY ==> h264parse1 [gstreamer] gstreamer changed state from NULL to READY ==> queue0 [gstreamer] gstreamer changed state from NULL to READY ==> qtdemux1 [gstreamer] gstreamer changed state from NULL to READY ==> filesrc0 [gstreamer] gstreamer changed state from NULL to READY ==> pipeline0 [gstreamer] gstreamer changed state from READY to PAUSED ==> videorate0 [gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1 [gstreamer] gstreamer changed state from READY to PAUSED ==> nvvconv0 [gstreamer] gstreamer changed state from READY to PAUSED ==> omxh264dec-omxh264dec1 [gstreamer] gstreamer changed state from READY to PAUSED ==> h264parse1 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> queue0 [gstreamer] gstreamer stream status CREATE ==> sink [gstreamer] gstreamer changed state from READY to PAUSED ==> qtdemux1 [gstreamer] gstreamer changed state from READY to PAUSED ==> filesrc0 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer stream status ENTER ==> sink
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:46.003: gst_caps_is_empty: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:46.014: gst_caps_truncate: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:46.015: gst_caps_fixate: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:46.015: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:46.016: gst_structure_get_string: assertion 'structure != NULL' failed
(rt_test.out:26598): GStreamer-CRITICAL **: 11:02:46.017: gst_mini_object_unref: assertion 'mini_object != NULL' failed NvMMLiteOpen : Block : BlockType = 261 NVMEDIA: Reading vendor.tegra.display-size : status: 6 NvMMLiteBlockCreate : Block : BlockType = 261 [gstreamer] gstreamer message stream-start ==> pipeline0 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer message duration-changed ==> h264parse1 [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [gstreamer] gstDecoder -- failed to retrieve next image buffer [1] + Done "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-dxdu410x.i0h" 1>"/tmp/Microsoft-MIEngine-Out-piuyumdh.ivv"
Do you have an idea to solve my problem? I thank you in advance,thanks!