question

lwj avatar image
lwj asked

Echo show cannot play rtsp video

I ran into a problem with the echo show playing rtsp video stream.
My skill-id is amzn1.ask.skill.99d96a67-6368-4bcb-b596-f3f1c54d71a2.
I used echo show to test whether my skill can play video stream. Since aws requires video stream to be transmitted on port 443 and TLS encryption, I used stunnel.
When I received the lambda command from alexa, I use ffmpeg to simulate streaming to the stunnel rtsp server, source file format is an MP4 file (h264, aac, 640 * 360).
Echo show can't play, and I can play it using ffplay or vlc.
I found out that ssl handshake was successful from stunnel.log (see attachment file), but then the connection was reset by echo show.

My test account and other information :
1. Account linking credentials (please contact me for test account and password)
2. I don't know the version of the Echo Show, but konw the Serial Number (G000 MW06 7247 0EJ3). The OS version is Fire OS 5.5.3.3 (645583020)
3. I have ever doubt if there is something wrong with our SSL certificate. Thus I have checked our domain certificate information on the website (https://www.sslshopper.com/ssl-checker.html), showing that it is no problem.
Our certificate is issued by DST Root CA X3 which is in the list of supported CA certificates provided by aws. (https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReport).
4. my streaming server is deployed on aws ec2 , its ip is 3.218.14.127, and the domain name is alexamedia.nooie.com.
5. my camera's name is office camera.
6. dialogue is as follows:
I: alexa, show me the office camera.
alexa: em, the camera is not responding.

Below are my test flow and some screenshots of the echo show we usage process.
About lambda:

1. AcceptGrant response

{

"event": {

"header": {

"namespace": "Alexa.Authorization",

"name": "AcceptGrant.Response",

"payloadVersion": "3",

"messageId": "e3321967-1158-4482-b7a3-df4fdadc026b"

},

"payload": {}

}

}

2. Discover response

{

"event": {

"header": {

"namespace": "Alexa.Discovery",

"name": "Discover.Response",

"payloadVersion": "3",

"messageId": "e1a642bc-ae75-4de9-832e-2dd5c5026703"

},

"payload": {

"endpoints": [

{

"endpointId": "6d6578d8a3440632a8e0ed6d434946ab",

"manufacturerName": "Nooie",

"description": "IPC007-1080P",

"friendlyName": "office camera",

"displayCategories": [

"CAMERA"

],

"capabilities": [

{

"type": "AlexaInterface",

"interface": "Alexa.EndpointHealth",

"version": "3",

"properties": {

"supported": [

{

"name": "connectivity"

}

],

"proactivelyReported": true,

"retrievable": true

}

},

{

"type": "AlexaInterface",

"interface": "Alexa",

"version": "3"

},

{

"type": "AlexaInterface",

"interface": "Alexa.CameraStreamController",

"version": "3",

"cameraStreamConfigurations": [

{

"protocols": [

"RTSP"

],

"resolutions": [

{

"width": 640,

"height": 360

}

],

"authorizationTypes": [

"BASIC"

],

"videoCodecs": [

"H264"

],

"audioCodecs": [

"AAC"

]

}

]

}

]

}

]

}

}

}
3. InitializeCameraStreams request (This request is used to inform the rtsp stream server to push stream)

{

"directive": {

"header": {

"namespace": "Alexa.CameraStreamController",

"name": "InitializeCameraStreams",

"payloadVersion": "3",

"messageId": "643f0255-7612-45d0-b492-b8b543de6ac8",

"correlationToken": "AAAAAAAAAACD5AMtsU8hiA69Zs/p9CLMDAIAAAAAAAAZ2VLrpz5G/hjywM1DDqH7NNAkSS6xQNzEwdN8OAZC5FuXHVTlmVk/vMFWBFdK9868N40AoXgqO0qJZFXicIJ07V6dqo9xh10GsVs3uFDvZD6q2H8BHspsIo74CGrIgBr1KnisFlmnKO3KWZVBf+9kZ0AC5sFQTdo0rAbfUW5Uz/JVQArKdW2Q74/Y39UaODix4DzSjoVKXKZzhIYoR+V0dYBAB8CImi4a+uHe1AWrV0qqNGfeXES9kax8sRw4n1OjqWY+4eAXgtrKsEBMQRiyfUO3Hi2k8o1/Inr2lWBQDr5be3qkVoZ0ucvebGU2e3HG9/HvQ3NrWrJRPQlqYPJBiNGJUu8L++auUaSxGwoD64XnA13jZBIwZChXeMKBOiekHmpLPc9WxogKnCymEqvNFIRHPDQSgqhmFNexLLHtDhkM03PUrwumqwr6j+auJg2RhJgHgO+L48n4u6AtjpXMBDli489XfIT/2cdsuEy4PUgDJueI2/niYvtTA4sbBygXKEc9W+oQ6Y+jzWJIuQFVeWGH3YsLr9Sc/Ndoqe2avoaSyuMhwPrcvRr9BeNpWcnyH736KKrHx47/b8gfXHkKAxcPHuA/nejgvGnYmyhdkC+PBrkG5PW5BZg3l8OjkTUZV8l16U80uFODDsIfu0EJSF/ZBomzbtC+XkaOqAN9u6HS4aIxC/PtBr4F9A=="

},

"endpoint": {

"scope": {

"type": "BearerToken",

"token": "95eafbc8cd08b5a34d9d6bd6f2f2ef4302da2f66"

},

"endpointId": "6d6578d8a3440632a8e0ed6d434946ab",

"cookie": {}

},

"payload": {

"cameraStreams": [

{

"protocol": "RTSP",

"resolution": {

"width": 640,

"height": 360

},

"authorizationType": "BASIC",

"videoCodec": "H264",

"audioCodec": "AAC"

}

]

}

}

}
4. InitializeCameraStreams response (This response is used to tell the echo show some information about the rtsp video stream)

About rtsp server of stunnel (used for TLS encryption ):
1. stunnel.log (ssl handshake)

echo showcamera
10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Anand@Amazon avatar image
Anand@Amazon answered

Hello there,

As this issue is specific to your account, please file a contact us here where we will be able to assist further.

Please also provide account linking credentials with us while raising case to us for further debugging.

Regards,

Anand

2 comments
10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

I have submitted a contact on case 6417713231 last week; However, after several times of contact, the last time has not replied to me. So far it has not been resolved.

0 Likes 0 ·

Hi, it seems that you have been working with someone from our support team. Please make sure to reply to the link in your email. Thanks

0 Likes 0 ·
newuser-b9aebb1c-b421-4ed5-ae4a-2c3ce89f0985 avatar image
newuser-b9aebb1c-b421-4ed5-ae4a-2c3ce89f0985 answered

hello there.

I got the problem too, and i don't know how to make rtsp over ssl. could you figure me ouit that what tools i can use to build ' rtsp over ssl '?

i build rtsp sever in easydarwin, and push stream to rtsp server by ffmpeg, but I have no idea how to build a 'rtsp over ssl' Environmen for testing.

thanks so much!

1 comment
10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

you can use stunnel, it looks like proxy, it can help you to encrpy data over tls.

you can google or baidu "stunnel", usage and configuration are also simple.

on ubuntu, execute this command to install

sudo apt-get install stunnel4


0 Likes 0 ·
newuser-770be0ea-2e14-4997-911a-16b1927bc2ce avatar image
newuser-770be0ea-2e14-4997-911a-16b1927bc2ce answered

Excuse me, has the landlord problem been solved? I'm now facing the same problem.

10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

newuser-4f5a06e0-dd80-4352-a9eb-2fb7fcb070dd avatar image
newuser-4f5a06e0-dd80-4352-a9eb-2fb7fcb070dd answered

hello, i got the same problem too, do you fixing this issue?

10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.