Windows Media Encoder - Audio Codecs - audio

When encoding and streaming audio with Windows Media Encoder 9 (with WMA 10 Professional codecs installed), there seems to be a minimum audio latency of ~2 seconds, even when using the Low Delay CBR configurations.
Are there any codecs out there that can be installed into Windows Media Encoder and that would encode to mp4a with a reduced latency? Or are there other WME settings that can be changed to accomplish this? VLC seems to be able to encode to mp4a with a 1.5 sec delay.

Related

VLC Player drops audio on RTSP stream after a short time

I'm streaming audio and video from a HikVision security camera and the audio drops shortly after I start VLC. It doesn't return unless I close and restart VLC. I'm using VLC version 3.0.18 on Windows 10 with an NVIDIA RTX A4000
I have tried H.264 and H.265 encoding with MP3, MP2L2, and PCM audio encoding. PCM didn't work at all. The camera offers the following audio encoding options: G.722.1, G.711ulaw, G.711alaw, MP2L2, G.726, PCM, and MP3. I'm streaming a fairly low res (640x360) feed. I haven't tried streaming a high res stream but I doubt that will help. My gigabit switch says the camera is only transmitting at about 300Kbs on a 100 megabit connection so it seems unlikely there is a network bandwidth issue, especially since there are only 2 cameras, one PC a phone and tablet connected to this network and I'm the only one using any of it.

when video or audio is played from a uri is it streamed or downloaded fully and played?

I have a content creation site I am building and im confused on audio and video.
If I have a content creators audio or video stored in s3 and then I want to display their file will the html video player or audio player stream the media or will it download it fully then play it?
I ask because what if the video or audio is significantly long. like 2 hours for example. I need to know how to solve the use case.
Lastly what file type is most acceptable for viewing on webpages? It seems like MPEG-4 is the best bet. Is that true?
Most video player clients and browsers will attempt to stream the video if they can.
For an mp4 video file hosted on a server, so long as the header is at the start and the server accepts range requests, this will mean the player downloads the video in chunks and starts playing as soon as it has enough to decide the first frames.
For more professional streaming services, they will generally use an adaptive bit rate streaming protocol like DASH or HLS (see this answer: https://stackoverflow.com/a/42365034/334402) and again the video will be streamed in chunks, or segments, and will start playing while it is streaming.
To answer your last question you need to be aware that the raw video is encoded (e.g. h.264, VP9 etc) and the video, audio, subtitle etc tracks stored in a video container (e.g. mp4, Web etc).
The most common format is probaly h.264 encoded and mp4 containers at this time.
The particular profile for h.264 can matter also depending on the device - baseline is probably the most supported profile at this time. You can find examples of media support for different devices online, e.g. for Android: https://developer.android.com/guide/topics/media/media-formats
#Mick's answer is spot on. I'll just add that mp4 (with h264 encoding) will work in just about every browser out there.
The issue with mp4 files (especially with a 2 hour long movie) isn't so much the seeking & streaming. If your creator creates a 4K video - thats what you'll deliver to everyone (even mobile phones). HLS streaming on the other hand has adaptive bitrates - where the video adapts to both the screen & the available network speeds. You'll get better playback results with less buffering (and if you're using AWS - a LOT LESS data egress) with video streaming.
(there are a bunch of APIs and services that can help you do this - including api.video (where I work), Mux and others).

FFMPEG: CPU usaged (MP3, AAC, OOG)

I'm transcoding IPTV to HLS streaming, but getting issue with CPU, my VPS is too weak :D lose 10% CPU if transcode mpga layer 2 to aac. So i'm finding the best audio code that uses lowest CPU. Let's give a suggestion
AAC/MP3/OOG
Thanks!
As per RFC 8216 - HTTP Live Streaming ogg is not supported. Only aac, ac3, eac3 and mp3 are accepted.
One thing to keep in mind if you ever need to publish to Apple's App Store is that there's no mention of mp3 whatsoever in their latest HLS recommendation and they specifically require stereo in aac.
This leaves you with aac, get a better VPS.

RTSP is the only stream working from my WOWZA streaming engine

I have every stream type enabled on my wowza server.
a week ago i had it working in the wowza test players
now the only one that works is the RTSP in VLC
now every stream just shows a black screen.
If i try to access the m3u8 via Safari browser i can hear the audio but no visual
Any assistance on this would be a major help.
this is due to incompatible video, audio codec. you need to user right encoder or you can use wowza transcoder to transcode your stream (h.264 , AAC) . it will resolve your playback problem. if you are using flash media live encoder you can select h.264 encoding method, and audio codec should be aac or mp3.
Some quick troubleshooting steps:
What source encoder are you using? Can you playback the source URL on VLC as well? What codec info is displayed in VLC for the source stream? It should be one of the supported codecs for Wowza.
What codec info is displayed in VLC for the RTSP playback link generated by your Wowza server?
Do you see any errors/warnings in the access log when you publish and playback your HLS (m3u8) stream?
Usually, this kind of error is due to an incorrect video codec, or an encoding setting, or network saturation where the video packets are not coming through correctly. You can check what error or warning messages are being generated by tailing the access log found in logs/ folder of your Wowza installation directory.
Hope this helps.

What is the technology behind streaming pages like earthcam.com?

There are some webpages that stream the live video to the browser, let's take an example of www.earthcam.com - does anyone know how exactly does it work?
Do they have the stream sent through some node.js server with some protocols (what kind of?), etc. As I understand there are only few formats supported on each platform:
Safari:
HLS (iOS and mac only)
h.264
MP4
Firefox
DASH (via MSE but no h.264)
h.264 via Flash only!
VP9
MP4
OGG
Webm
IE
Flash
DASH (via MSE IE 11+ only)
h.264
MP4
Chrome
Flash
DASH (via MSE)
h.264
VP9
MP4
webm
ogg
And earth cam works everywhere. Do they use flash in case of windows and some other technology in case of Mac OS?
Yes, they detect what browser you are using (User-Agent), and choose a technology that works for that platform.

Resources