You could just use an image with sufficient resolution, if you know what size that is. Then css can scale it for smaller screens.
Otherwise you are into using <picture> elements and srcset attributes which may be overkill unless you are changing the image drastically in size content or aspect.
If simply scaling the image does not give the desired results and you need to swap it out for a totally different banner with a different aspect, then picture is the tool for that. It should not require any javascript, maybe it was a polyfill.
It sounds like you are not maintaining the aspect ratio of the image?
If you stretch one dimension of an image then the other dimension needs to be auto. You can’t change an image from 375 to 675px width and still keep the height to 50px. That would just stretch the image and look wrong.
You could use object- fit to make the image keep its aspect ratio while keeping your 50px height but is not supported in older browsers. It’s probably easier just to use a background image and use background-size:cover instead. In that way you can stretch the width and also maintain a set height. Of course this means the image will be scaled until the background is filled so you will lose some detail at the edges.
The above assumes that you do want to enlarge the image on wider screens.
Yes, that’s the simplest approach, as per my first suggestion. An image that size should not be a real bandwidth hog if using appropriate compression.
In fact, if it’s orientation driven, that’s probably more efficient, as a user could change that and end up having to load both images.