其他人在kinesis video cpp Gstreamer示例中看到过这个错误?
我尝试了很多不同的途径,但似乎无法获得有效的解决方案!
任何帮助都非常感谢!
DEBUG - Stream is ready
Error received from element source-actual-src-avfvide: Internal data stream error.
Debugging information: gstbasesrc.c(2939): void gst_base_src_loop(GstPad *) (): /GstPipeline:test-pipeline/GstAutoVideoSrc:source/GstAVFVideoSrc:source-actual-src-avfvide:
streaming stopped, reason not-negotiated (-4)
INFO - Freeing Kinesis Video Stream test
freeKinesisVideoStream(): Freeing Kinesis Video stream.DEBUG - streamDataAvailableHandler invoked
DEBUG - streamClosedHandler invoked
freeKinesisVideoClient(): Freeing Kinesis Video Client
commonHeapDebugCheckAllocator(): Heap is initialized
commonHeapDebugCheckAllocator(): Heap limit:
536870912
commonHeapDebugCheckAllocator(): Heap size:
0
commonHeapDebugCheckAllocator(): Number of allocations:
0
aivHeapDebugCheckAllocator(): Allocated blocks pointer:
0x0
aivHeapDebugCheckAllocator(): *******************************************
aivHeapDebugCheckAllocator(): *******************************************
aivHeapDebugCheckAllocator(): Free blocks pointer:
0x107949000
aivHeapDebugCheckAllocator(): *******************************************
aivHeapDebugCheckAllocator(): Block:
0x107949000 size:
536870872
aivHeapDebugCheckAllocator(): *******************************************
heapRelease(): Freeing native heap.INFO - Curl shutdown
答案 0 :(得分:0)
查看源元素,看起来你在mac上。在开始运行sdk并查找包含creating caps event
的行之前,您可以尝试导出GST_DEBUG = 4。在同一行,您应该看到类似width=(int)1280, height=(int)720
的内容,这是在管道中协商的视频流的分辨率。在调试消息中查找第一次出现的宽度和高度信息。他们看起来像:
avfvideosrc avfvideosrc.m:906:-[GstAVFVideoSrcImpl setCaps:]_block_invoke:<source-actual-src-avfvide> width: 1280 height: 720 format: UYVY
这是相机支持的分辨率。如果此分辨率与下游元素中设置的分辨率不一致,则会出现not-negotiated
错误。在您的情况下,下游元素可能没有设置720p的分辨率。您可以通过将kinesis_video_gstreamer_sample_app.cpp中的第347,348,367,368行更改为
"width", GST_TYPE_INT_RANGE, 1280, 1920,
"height", GST_TYPE_INT_RANGE, 720, 1080,
更改的值表示解决方案协商的下限。