Streaming to Youtube


We are streaming to YouTube for the first time today, at https://www.YouTube.com/c/RioWingR/live
Our staff is at Klein Memorial Stadium, Spring, TX, from 17:00 to 19:00 PDT, Oct.18, 2018, broadcasting this college football game.
The live game can also be viewed at YouTube app by searching channel “Rio Wing live stream”.
The official way to view the game is at https://www.tsrnsports.com/schedule/?LocationId=2 , a division of MaxxSports.tv, and MaxxSports Android/iOS apps.
YouTube’s input is a RTMP URL, which looks like this: rtmp://a.rtmp.YouTube.com/live2/wa3k-p6y6-pmqv-YOUR
Some RTMP URLs can be used for both input (receiving from FFMPEG) and output (playable by VLC) such as nginx-rtmp-module. However, the RTMP URL from YouTube is only for input, and doesn’t work with players such as VLC.
YouTube RTMP server is quite picky on video; none of our IP cameras’s RTSP video is accepted by YouTube with “-vcodec copy”

YouTubeStream

Advertisements

Perfect Forwarding: std::forward and std::move


Based on the source code below, here is the forwarding result:
Input parameter                    Forwarded to
int intNonConst:                     (int&)
const int intConst:                  (const int&)
6(just a literal):                        (int&&) or if (int&&) doesn’t exist, to (const int& i)
std::move(intNonConst)):      (int&&)
int IntTemp():                          (int&&)
Why std::forward: otherwise, when a rvalue is passed, e.g. 6, std::move or IntTemp(), it gets forwarded to &, instead of &&.
Why std::move: so that a lvalue such as intNonConst can be treated as rvalue, and therefore be forwarded to &&
Summary: std::forward is to deal with rvalue forwarding, and it does not affect rvalue reference, regardless of constness

int IntTemp() { return 0; }
void TestForwardingFuncCalled(const int& i)
{
	cout << "const &" << endl;
};
void TestForwardingFuncCalled(int& i)
{
	cout << "&" << endl;
};
void TestForwardingFuncCalled(int&& i)
{
	cout << "&& " << endl;
};

template  void TestForwardingTemplateFunc(T&& t)
{
	cout << "Results with std::forward" << endl;
	TestForwardingFuncCalled(std::forward(t));
	cout << "Results without std::forward" << endl;
	TestForwardingFuncCalled(t);
}

void TestForwarding()
{
	int intNonConst = 2;
	const int intConst = 3;
	TestForwardingTemplateFunc(intNonConst); //with std::forward: (int&)", without std::forward: same
	TestForwardingTemplateFunc(intConst); //with std::forward: (const int&)", without std::forward: same
	TestForwardingTemplateFunc(6); //with std::forward: (int&&) or if (int&&) doesn't exist, to (const int& i), without std::forward: (int&)
	TestForwardingTemplateFunc(std::move(intNonConst)); //with std::forward: (int&&), without std::forward: (int&)
	TestForwardingTemplateFunc(IntTemp());  //with std::forward: (int&&), without std::forward: (int&)
}
void main()
{
	TestForwarding();
}

 

AI Assistant Mica


Augmented Reality: Magic Leap’s AI Assistant Mica
The idea is that as soon as you put on the Magic Leap One AR headset, Mica appears in your room.
Mica’s gender looks vague though.

Live Streaming Options


HLS/DASH:
HTTP segmentation based, high latency
As static HTTP content, well received by players, whether web or native based, and efficient on CDN
distributed by standard HTTP server.
RTSP:
Standard protocol for IP camera video output. Weak browser play support.
Requires router configuration when video source if behind NAT since streaming server have to pull video from video source.
Low latency
RTMP:
Popular with video source since source pushes to streaming server, and therefore no router work is needed when video source is behind NAT.
Low latency
WebRTC:
I believe this will be the protocol to deliver low latency video to browser.
supported by Chrome and Firefox. I don’t include IE/Safari plugin as it requires installation.
Support both VP8/VP9 and H.264 through OpenH264 and ffmpeg
Here is a little page that renders the laptop camera:
http://riowing.net/local/webRTC.htm tested on Edge (Chrome requires https or localhost)

Reference:
https://www.3cx.com/webrtc/which-browsers-support-webrtc
https://www.chromestatus.com/feature/6417796455989248