awslabs / amazon-kinesis-video-streams-producer-sdk-cpp

Amazon Kinesis Video Streams Producer SDK for C++ is for developers to install and customize for their connected camera and other devices to securely stream video, audio, and time-encoded data to Kinesis Video Streams.
Apache License 2.0
377 stars 334 forks source link

RTSP demo app failing with error InvalidCodecPrivateDataException #109

Closed ankit3600 closed 6 years ago

ankit3600 commented 6 years ago

I am getting the below error in terminal:

[ERROR][2018-08-16 18:26:27] on_new_sample(): kinesis_video_flags=0 pts=957358149 dts=957358149

fullErrorLog.txt

On the aws console, I am getting the below error:

Unexpected error Exception: InvalidCodecPrivateDataException Status code: 400 Request ID: c117a413-5b4f-a877-92f8-6039ce303a40 This may be an intermittent issue. Retry the same action, or try refreshing your browser tab.

screenshot from 2018-08-16 23-57-14

These are my system specs:

cat /etc/os-release NAME="Ubuntu" VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic

uname -r 4.15.0-32-generic

dpkg --get-selections | grep -i gst gir1.2-gst-plugins-base-1.0 install gir1.2-gstreamer-1.0 install gstreamer1.0-alsa:amd64 install gstreamer1.0-clutter-3.0:amd64 install gstreamer1.0-gl:amd64 install gstreamer1.0-packagekit install gstreamer1.0-plugins-base:amd64 install gstreamer1.0-plugins-base-apps install gstreamer1.0-plugins-good:amd64 install gstreamer1.0-pulseaudio:amd64 install gstreamer1.0-tools install gstreamer1.0-x:amd64 install libclutter-gst-3.0-0:amd64 install libgstreamer-gl1.0-0:amd64 install libgstreamer-plugins-base1.0-0:amd64 install libgstreamer-plugins-good1.0-0:amd64 install libgstreamer1.0-0:amd64 install libreoffice-avmedia-backend-gstreamer install

unicornss commented 6 years ago

Hi @ankit3600

Could you please tell us which camera model you are using and if it's configured to stream H264 video.

New RTSP source found: recv_rtp_src_0_1804289383_96 Source linked. [INFO ][2018-08-16 18:26:27] kinesisVideoStreamFormatChanged(): Stream format changed. [WARN ][2018-08-16 18:26:27] createMkvGenerator(): Failed extracting video configuration from SPS with 32000015. [ERROR][2018-08-16 18:26:27] on_new_sample(): kinesis_video_flags=1 pts=907358149 dts=907358149

Thanks

ankit3600 commented 6 years ago

This is the link on amazon: https://www.amazon.in/ProElite-IP01A-Wireless-Security-supports/dp/B079JL696S

This is the link on camera's website: http://www.proelite.co.in/ProElite/ProElite-IP01AX-2MP-Full-HD--1920x1080--WiFi-Wireless-IP-Security-Camera-CCTV--Watch-LIVE-Demo---supports-upto-128-GB-SD-card---Dual-Antenna---Black-id-3564689.html

I am able to play the camera successfully in vlc media player by giving the rtsp url (rtsp://192.168.0.2/11). In vlc media player configuration, it shows that the video is H264 encoded.

unicornss commented 6 years ago

thanks @ankit3600

Could you please send the logs with the debug enabled GST_DEBUG=5? This should help us understand what source format is recognized from the camera by the GStreamer pipeline..

Example:

-ThinkPad-X1-Yoga-1st:~/work/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build$GST_DEBUG=5 ./kinesis_video_gstreamer_sample_rtsp_app 
ankit3600 commented 6 years ago

ankit@ankit-ThinkPad-X1-Yoga-1st:~/work/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build$ GST_DEBUG=5 ./kinesis_video_gstreamer_sample_rtsp_app "rtsp://192.168.0.5/11" "KinesisTestStreamAnkit" |& tee ~/out.txt

Please find the output file (out.txt) in the below link: https://drive.google.com/file/d/1lX8_lNsw8ZYNfHfWn6_JoktTvb7gOrnq/view?usp=sharing

FYI screenshot of codec info in vlc media player screenshot from 2018-08-22 02-53-57

unicornss commented 6 years ago

Hi @ankit3600

I do see that the video stream has code private data. Could it be possible that the video source settings were changed at the time of streaming? Can you create a new stream and check if that helps...

0x7fb8a000e6d0, time 99:99:99.999999999, seq-num 261, GstEventCaps, caps=(GstCaps)"video/x-h264\,\ stream-format\=(string)avc\,\ alignment\=(string)au\,\ codec_data\=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80\,\ level\=(string)4.2\,\ profile\=(string)main";

ankit3600 commented 6 years ago

I have tested it many times (doing the testing for last 2 weeks). I have not changed anything in video source settings (don't even know how to do that). Everything is at its default state (camera, vlc, kinesis demo app and any settings that it may have).

This isssue is always present.

unicornss commented 6 years ago

Hi @ankit3600, Thanks for the logs.

  1. I extracted the following codec_data from your logs and noticing that it does change in the middle of stream.
 codec_data=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80
 codec_data=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80
 codec_data=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80
 codec_data=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80
 codec_data=(buffer)014d002affe1000b674d002a95a81e0089f95001000468ee3c80
 codec_data=(buffer)014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80

This is not typically expected and could cause the playback to display "codec data changed error message".

  1. The second aspect in your camera codec data is that one of the codec_data

014d0029ffe10015474d002999a01e0089f96100000303e800009c408401000448ee3c80

causes failure in the validation check both in ingesting side and playback side, whereas the codec_data

014d002affe1000b674d002a95a81e0089f95001000468ee3c80

should work fine.

Though revising the line CHK(read == SPS_NALU_67 || read == SPS_NALU_27, STATUS_MKV_INVALID_H264_H265_SPS_NALU); https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/74cc57332d089e6ac8b932b3cd5d6c6b59c03667/kinesis-video-pic/src/mkvgen/src/SpsParser.cpp#L243

to CHK(read == SPS_NALU_67 || read == SPS_NALU_27 || read == 0x47, STATUS_MKV_INVALID_H264_H265_SPS_NALU); should ingest the video for that frame it may still fail validation on the playback.

So, I would suggest trying the h264 profile in the camera as baseline profile instead of main profile

(profile=(string)main" )

using the camera configuration/setup instructions provided by the camera manufacturer. Let us know if helps to resolve codec_data change issue. Unfortunately, we don't have this particular model to recreate the issue locally.

Also, could you tell us more about how are you planning to use the Kinesis Video Streams?

Thanks

ankit3600 commented 6 years ago

I didn't understood your point "trying the h264 profile in the camera as baseline profile instead of main profile" Can you please elaborate more on that.

Also there are no camera configuration/setup instructions provided by the camera manufacturer on this.

unicornss commented 6 years ago

Some IP cameras provide a web interface to configure the settings. your camera h264 encoder options generate video stream in the (profile=(string)main" ).

I was referring to the possibility of changing the configuration (through the camera web interface if available) to a baseline profile and see if that helps in the codec data change during the video-streaming.

unicornss commented 6 years ago

Closing the issue as it has been answered. Please reopen or create a new issue with details on the support required. Thanks.

zebpaypeswani commented 5 years ago

@unicornss I am getting same error as above I am simply trying to put a locally stored mkv file

onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181432392682062618274554370250778456', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181432392682062618274554370250778456', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181432392682062618274554370250778456', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181437344442219759795658471381552466', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181437344442219759795658471381552466', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181437344442219759795658471381552466', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181442296202376901316762628670330617', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181442296202376901316762628670330617', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181442296202376901316762628670330617', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181447247962534042837866811084792255', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181447247962534042837866811084792255', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181447247962534042837866811084792255', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181452199722691184358970950757361025', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181452199722691184358970950757361025', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181452199722691184358970950757361025', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181457151482848325880075057651118352', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181457151482848325880075057651118352', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181457151482848325880075057651118352', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181462103243005467401179214107806713', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181462103243005467401179214107806713', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181462103243005467401179214107806713', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181467055003162608922283293743845045', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181467055003162608922283293743845045', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181467055003162608922283293743845045', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181472006763319750443387341676117927', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181472006763319750443387341676117927', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181472006763319750443387341676117927', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181476958523476891964491557115294611', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181476958523476891964491557115294611', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181476958523476891964491557115294611', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181481910283634033485595743756007180', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181481910283634033485595743756007180', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181481910283634033485595743756007180', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181486862043791175006700755251580843', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181486862043791175006700755251580843', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181486862043791175006700755251580843', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181491813803948316527804806893642154', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181491813803948316527804806893642154', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181491813803948316527804806893642154', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181496765564105458048908856452130945', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181496765564105458048908856452130945', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181496765564105458048908856452130945', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181501717324262599570013098147847296', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181501717324262599570013098147847296', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181501717324262599570013098147847296', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181506669084419741091117337551671278', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181506669084419741091117337551671278', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181506669084419741091117337551671278', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181511620844576882612221387062281622', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181511620844576882612221387062281622', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181511620844576882612221387062281622', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181516572604734024133325601264378332', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181516572604734024133325601264378332', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181516572604734024133325601264378332', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181521524364891165654429652237449158', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181521524364891165654429652237449158', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181521524364891165654429652237449158', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181526476125048307175533837441161645', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181526476125048307175533837441161645', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181526476125048307175533837441161645', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181531427885205448696637948981208613', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181531427885205448696637948981208613', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181531427885205448696637948981208613', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181536379645362590217742213290529334', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181536379645362590217742213290529334', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181536379645362590217742213290529334', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181541331405519731738846391770509979', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181541331405519731738846391770509979', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181541331405519731738846391770509979', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181546283165676873259950520781823575', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181546283165676873259950520781823575', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181546283165676873259950520781823575', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181551234925834014781054662087873443', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181551234925834014781054662087873443', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181551234925834014781054662087873443', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181556186685991156302158852565729812', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181556186685991156302158852565729812', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181556186685991156302158852565729812', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181561138446148297823263101424092971', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181561138446148297823263101424092971', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181561138446148297823263101424092971', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181566090206305439344367232553419206', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181566090206305439344367232553419206', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181566090206305439344367232553419206', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181571041966462580865471412237485617', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181571041966462580865471412237485617', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181571041966462580865471412237485617', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181575993726619722386575593983137295', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181575993726619722386575593983137295', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181575993726619722386575593983137295', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181580945486776863907679702378515620', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181580945486776863907679702378515620', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181580945486776863907679702378515620', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181585897246934005428783897672907162', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181585897246934005428783897672907162', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181585897246934005428783897672907162', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181590849007091146949888071960986387', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181590849007091146949888071960986387', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181590849007091146949888071960986387', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181595800767248288470992298182123407', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181595800767248288470992298182123407', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181595800767248288470992298182123407', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181600752527405429992096452730593687', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=RECEIVED, fragmentTimecode=0, fragmentNumber='91343852333181600752527405429992096452730593687', errorCode=null, errorId=null}
onAckEvent AckEvent{ackEventType=PERSISTED, fragmentTimecode=0, fragmentNumber='91343852333181600752527405429992096452730593687', errorCode=null, errorId=null}
onComplete
onAckEvent AckEvent{ackEventType=BUFFERING, fragmentTimecode=0, fragmentNumber='91343852333181605704287562571513200555707130611', errorCode=null, errorId=null}

But at aws console video is not showing

MushMal commented 5 years ago

@zebpaypeswani your stream is being accepted, indexed and persisted indicating that you had a valid MKV format being uploaded. However, in order for the console to playback the stream, it has to be a valid "video/h264" type which is in AvCC format instead of Annex-B or raw. It should also have a valid Codec Private Data (which is SPS/PPS for h264).

Could you validate it?

An alternative is to use the C++ SDK sample application to upload the existing file.

zebpaypeswani commented 5 years ago

@MushMal I recorded a video from my mobile and converted it using ffmpeg -i input.mp4 -b:v 10M -minrate 10M -maxrate 10M -bufsize 10M -bf 0 input.mkv is there anything else I can do to get it in AvCC format? here is some details I get from ffprobe https://pastebin.com/TWbQDMPi

unicornss commented 5 years ago

Hi @zebpaypeswani

As @MushMal has mentioned earlier, the stream is getting ingested without any issues.

Could you please create a new stream and try sending ? Also, send us the details from ffprobe on the mp4 file to kinesis-video-support@amazon.com and screenshot of the error you are seeing in the console.

Thanks

zebpaypeswani commented 5 years ago

@unicornss I am doing face matching the photos are indexed in s3 bucket in a collection. If video is getting ingested how can I get data from kineses data stream which will tell face is matched I see here an example https://docs.amazonaws.cn/en_us/streams/latest/dev/kcl2-standard-consumer-java-example.html but I am not able to figure out how to get the data.

unicornss commented 5 years ago

Hi @zebpaypeswani ,

Please refer Kinesis Video Streams Parser Library examples for additional details on how to perform further processing, recognition integration and analytics.

Thanks

qqia commented 5 years ago

Hi @zebpaypeswani ,

Please make sure you are using latest code running below example

We have just published a fix for a bug.

zebpaypeswani commented 5 years ago

@qqia @unicornss I am getting this error when running example https://pastebin.com/jisMD3pt here is the code https://pastebin.com/kV2RNnbN

Although it open KinesisVideo Embedded frame viewer

qqia commented 5 years ago

hi @zebpaypeswani ,

I saw quite some exceptions like

 Unable to execute HTTP request: dynamodb.us-west-2.amazonaws.com
Unable to execute HTTP request: monitoring.us-west-2.amazonaws.com

Can you check if its DNS issue or something?