Picture Entity, dual resolution

Hello,
I’m facing a problem with my IPcams that generating a huge traffic when put them on foreground, therefore haffmpeg gets huge delay.
The main cause is the resolution that the IPcam can play, one is 1280x720 and the second is 640x372, Using the bigger one will get delayed and haffmpeg will go timed out.

I’d like to ask whether there is the option to use the small frame stream to present on the picture card and to play the bigger upon the click on the card.

I’m not sure what you mean here, but it sounds like you want them to use less bandwidth as a card but use high bandwidth in the popup…? I don’t think there’s any native way to specify different URLs for the two (possibly a custom component can), but if you have camera_view: live configured in your card you can remove that to have it only refresh a static image every 10 seconds.

Your guess is correct. Then the snapshot is every 20 seconds, which is causing timeout because of the size.
For the FFmpeg entity, there is no still preview, which I’d prefer. So when I put such entity definition it will result in a timeout sequence. That seems to get the first frame it takes longer than haffmpeg module. I previously wrote something about that.
I can’t find a suitable entity that will do as you mention.

I’m having trouble deciphering some of your comments, but have you tried configuring it as a Generic IP Camera?
This would allow you to use separate URLs for stream_source and still_image_url.

Well, my English his somehow horrible, I know :smiley: It is not my mother language.

Trying to use the generic camera setting I’m getting the error

2019-08-06 22:32:34 ERROR (MainThread) [homeassistant.components.generic.camera] Error getting new camera image: /local/FrontCam.jpg
2019-08-06 22:32:34 ERROR (MainThread) [homeassistant.components.generic.camera] Error getting new camera image: /local/SideCam.jpg

Which probably I’m doing the wrong addressing

- platform: generic
  name: Gate
  still_image_url: /local/FrontCam.jpg
  stream_source: rtsp://192.168.0.xxx/11
- platform: generic
  name: SideDoor
  still_image_url: /local/SideCam.jpg
  stream_source: rtsp://192.168.0.xxx/11

$ ls www/
FrontCam.jpg    SideCam.jpg 

Supposing I’m listing from inside HA home, where configuration.yaml reside.

In the other post you cited, you stated that you could access the camera feed from a browser.
Have you tried using that URL as your still_image_url?

I’m very glad that you give me so many suggestion, but I couldn’t find any other solution that set ffmpeg type and open the visualization in another page. This way limits the system overload only when trying to display the images.
I’ll keep trying your suggestion, even I feel they may give no results.

That’s fine, just substitute terms that are more specific to Home Assistant, automation, computing, and the current discussion.

Than what?

What visualization?

Are you referring to a web-browser page?

Which way?

Are you saying that displaying still images overloads the system, while displaying video does not?

I’ll try to describe the situation.
Opening the page [http://localhost:8123/second_tab] (the tab where I set the camera card), there will be a huge traffic to get the stream from the IPcams (2 pieces, the farther is rather slower), the higher resolution the bigger traffic.
Try to change from ffmpeg to generic camera, they won’t come up and the card display an empty frame. Perhaps the picture ( still_image_url:) is not found at the given address, whereas is visible for a picture entity.
So the second tab is a patch on reducing the traffic volume, the streaming will start just when the tab is shown.

Previously I was keeping the camera cards on the first HA page, then the system started to lag on its general performance. The main cause is what HAffmpeg trying to accomplish. That is not able to settle with the time to initiate the stream, so HAffmpeg will repeat a request over and over, ending in a condition of asynchronous transfer.
Let figure it like, HAffmpeg request a frame, the IPcam prepare the (slowly) stream, then HAffmpeg declares a timeout and issue a newer request, so the IPcam has to discard the preparing frame and repeat for the new one.

I admit that what I write, several time is lesser than what I thought :sob:

OK, let’s back up a little. When you configured your IP Cam as generic.camera you saw the following in the Log: Error getting new camera image: /local/FrontCam.jpg.
In the configuration you posted, the URL for still_image_url: was /local/FrontCam.jpg. <-- This is not an IP address, so it cannot be reaching your IP Cam.
In the other post you cited, you stated that you could access the camera feed from a browser.
Have you tried using that URL as your still_image_url?

Here are the setting
mycam.yaml

- platform: generic
  name: Gate
  still_image_url: http://127.0.0.1/www/FrontCam.jpg
  stream_source: rtsp://192.168.0.xxx/11
- platform: generic
  name: SideDoor
  still_image_url: http://127.0.0.1/www/SideCam.jpg
  stream_source: rtsp://192.168.0.xxx/11

The configuration.yaml

camera: !include mycam.yaml

The page shows an empty frame


Which are not clickable.
The url I imaging to use such way, as I read on the forum.

So in the other post when you said, “…if played from the web browser”, the URL in the browser was http://127.0.0.1/www/FrontCam.jpg?

Well the picture is in the subdirectory www, of which the current directory contains configuration.yaml.
But as you’re telling, it need a complete uri to display that picture. so I’m trying to figure out if the http://localhost:8123/www/FrontCam.jpg will be taken as a valid url. But we are seeing that is not the result.
The browser is from another PC, so I have to access HA from the router IP. But that picture is not at such address (404).

I can’t tell if your reply means yes or no. :confused:

No, I can’t play the jpg picture.

I’d say that with a picture entity and giving the camera.name it will start to ask for a frame, but the camera is slow. This using FFmpeg platform.
Using the generic platform, I suppose that the intial issue is to show a still image. Then probably will play the stream when clicked.

I was trying to give a call.service to play the stream, but it should need a media_player entity. I don’t know how it will play in a superimposed window,

OK, let’s back up a little more.
Can you access the camera feed from a browser?

Hi HomAut,

I’m wondering if you figured this out. I think I’m trying to do the same thing.

I have 2 cameras running at 2k resolution. To minimize my bandwidth usage from HA to my clients I’ve set up “proxy” cameras to reduce the resolution on my Lovelace Card (both are set up as their own picture entity). I want to be able to click on one of the elements in the card and have the popup show the full resolution.

In the cards, I referecne the “proxy” camrea entity. I was hoping that I could put the high resolution
camera entity i the “Camera Entity (Optional)” property and that it would call the higher resolution feed specified there on popout. That doesn’t seem to be happening - the popout looks to be the proxied (low) resolution.