red5: mixing files when recording at same time - red5

I use red5 1.01 and record video1 to webapps/live (I tried also to /vod)
I open browser1 and it records fine to /live/streams/video1.flv
I record video2 with pc2 to webapps/live
Works fine as well: I have /live/streams/video2.flv
Problem comes when I try to record video1 from PC1 and video2 from PC2 at the same time:
video1 is blank, video2 has video1 content:
RED5 totally mixes and overwrites the 2 streams. It looks like it cannot record 2 streams at the same time (the 2 streams has different names of course)
Regards

Related

LINQToSQL - Auto Incremented Id Provided - Row not in database

I have a Comments db table
var c = new comment
{
name = message,
userID = userId
};
this.commentDataContext.Comments.InsertOnSubmit(c);
this.commentDataContext.SubmitChanges();
this.logger.WriteInfo($"Message: {c.name}");
this.logger.WriteInfo($"CommentId: {c.id}");
Within my log files I do receive an CommentId
2019-11-04 11:06:28,042 [79] INFO Root [(null)] - CommentId: 271609
However when I do a query on the db table it returns nothing.
Is it rolling back? I have looked at the event viewer but see no errors. As this is on a live server, I hope to not go down the route of turning on tracking as its constantly being hit, so will be like trying to find a needle in a hay stack. Is there another way I can work out why it thinks it has inserted but then roll-backed the change?

code delivery in stream impact on another stream

If code is delivered to a stream will it have any impact on another stream which has the same component.
eg :
stream 1
Comp 1 - baseline 1
Stream 2
Comp 1- baseline 1
If a create a repo workpace out of stream 2 and make code changes and deliver to Stream 2 will the change be available in stream 1.
Are the components same or two different copies?
Are the components same or two different copies?
They are the same component.
But each stream only display the LATEST changesets delivered for that component.
That means delivering new change sets on Stream2 (and making a new baseline) has no effect on the same component on Stream1.

Wiimote configuration ... and pi 2

I finally took my raspberry pi 2 and as a retro like… installing the retropie.. btw excellent…
All is ok except the connections of the wiimote…
I do everything letter by letter guide from this page https://github.com/RetroPie/RetroPie-Setup/wiki/Wiimotes-with-classic-controllers and use the dirty way…
The wiimote register just fine but after that i take warning that “warning duplicate absolute axis assignment: two times…
I try everything and search but with no luck…
Anyone can help me…
Thank you

How do I selectively share data with clients, so that they only see their own data, and not of their competitors?

I have data like this in my Excel 2013 workbook
Table 1:
Col A Col B Col B
1 Client 1 ..... 123
2 Client 1 ..... 456
3 Client 1 ..... 99
4 Client 2 ..... 324
5 Client 2 ..... 989
6 Client 3 ..... 234
7 Client 3 ..... 23
I am using this Table 1 for a client specific report elsewhere in the excel. e.g.
Client Report: Client 1
Col A Col B Col C Col D
1 Client 1 123 456 99
The cell A1 in the report is a data validation dropdown containing the names of the Clients. I can change that dropdown to Client 2
Client Report: Client 2
Col A Col B Col C Col D
1 Client 2 324 989
What I want to be able to do is send out one file to all clients, which contains the Client Report, but each Client should only be able to see their own data. As a bonus, each client should also not be able to see which other clients are on the list (i.e. in the file that Client 1 receives, he/she should not have access to the numbers of Client 2 and Client 3, and as a bonus, should not even see the names Client 2 and Client 3)
I have an option of creating these files manually, for each client. I am looking for a way to hide data in a file depending on which Client it is for, and thus sending out the same file to multiple clients (I have ~30 clients, so the manual process will be error prone and a pain). I don't want to create 30 separate files or sheets if I can help it. The ideal way would be to build a 'master' option, which gives me access to all data, but not to the client who I send this out to. However, data confidentiality is super critical, and if password protection in Excel Workbooks is questionable, then I would not want this option, and I will go back to manual :)
Also, even though I am only looking for vanilla Excel solutions (I can't rely on my clients to have addons installed or install one just for the sake of this), if you do know of interesting ways to address this kind of a problem with addons, please do comment/answer.
Thanks!
As Steven Martain said, there is NO SECURITY in Excel. You can password-protect your Workbook, but the password can be broken in no time at all. Instead split your file into several separate files. Please see this link for an idea of how to do this.
http://www.rondebruin.nl/win/s3/win006.htm
Then, simply email the different files to different recipients/clients/people. See this link for an idea of how to do that.
http://www.rondebruin.nl/win/s1/outlook/amail6.htm
It is not possible to do it without coding/VB. However, you can use InstaRow ( check here). Which is perfect tool for this problem. You can signup with email id ( and your clients). They will see exactly their portion.
They can even change data easily.
Posting #StevenMartin 's answer from the comments above, as it seems to the way to go about it
"Write a macro to spit out 30 workbooks - a simple search would tell you excel password protection can be broken in seconds"

Troubleshooting WebRTC code

I'm pulling my hair out with this one. A month or so ago, I was able to put together a proof-of-concept WebRTC demo, using some sample code from the good folks at SignalR. The demo is located here, the source for it is here, and it does what it's supposed to do.
But when I took that code and moved it into our actual application, I haven't been able to get it to work. Of course the code had to be changed significantly - different backends, different set of frameworks and supporting code, supporting multiple simultaneous connections, that sort of thing - but the core logic is very similar. But I can't get it to work.
I've put together a sample app here that demonstrates the problem:
https://bitbucket.org/smithkl42/signalr.webrtc
The core WebRTC logic is all in this TypeScript file:
https://bitbucket.org/smithkl42/signalr.webrtc/src/tip/SignalR.WebRTC/Scripts/Media/WebRTC.ts?at=default
It's several hundred lines long, so I won't bother posting it here, but you can see it by clicking on the link above.
When it runs, it produces output like this:
12:17:58.531 WebRTCController.call(): Calling 7d9e0d39-5047-4afe-86e5-e6e01b9f5955 when preparations have finished
12:17:58.533 WebRTCController.prepareForCall(): Preparing for call: localSessionId='39d2df53-6854-415a-8748-b5230eda2eb1'; remoteSessionId='7d9e0d39-5047-4afe-86e5-e6e01b9f5955'
12:18:0.139 Object.(): The user has granted media device access, so proceeding to prepare for call
12:18:0.141 Connection.createPeerConnection(): Creating peer connection; using stunServer stun:stun1.l.google.com:19302
12:18:0.144 (): Preparations finished. Creating and sending JSEP offer. Util.js:21
12:18:0.272 Connection.handleIceCandidate(): STUN server has found an ICE candidate (event.type='icecandidate').
12:18:0.282 Connection.handleIceCandidate(): STUN server has found an ICE candidate (event.type='icecandidate').
(More like that)
12:18:0.655 WebRTCController.handleJsepAnswer(): Handling JsepAnswer from 7d9e0d39-5047-4afe-86e5-e6e01b9f5955
12:18:0.694 Object.(): Sending ICE candidate to the remote machine: {"sdpMLineIndex":0,"sdpMid":"audio","candidate":"a=candidate:2999745851 1 udp 2113937151 192.168.56.1 62978 typ host generation 0\r\n"}
12:18:0.706 Object.(): Sending ICE candidate to the remote machine: {"sdpMLineIndex":0,"sdpMid":"audio","candidate":"a=candidate:2999745851 2 udp 2113937151 192.168.56.1 62978 typ host generation 0\r\n"}
(More like that)
But then it never connects, i.e., the video from the other side never starts playing. At the signaling layer, I can tell by the logs and by stepping through the code that the first browser is sending a JSEP offer; the second browser is receiving it, storing it and sending back an appropriate JSEP answer; and the first machine is storing that answer. Each peerConnection is then finding the ICE candidates and sending them to the remote machine; and each peerConnection is receiving and apparently trying those ICE candidates; and the peerConnections are even raising the onaddstream event. But the video never starts playing.
The state of the peerConnection object all the way through looks like this:
(iceGatheringState=new; iceState=starting; readyState=active)
The frustrating bit is that every so often, maybe one time out of 20, it does work, i.e., both videos show up. So I'm not doing everything wrong. It sounds like a timing issue of some sort - but I can't figure out what it is. And so far as I can tell, there's not much in the WebRTC objects (specifically RTCPeerConnection) to tell you what's going wrong.
I hate to ask anybody else to do my troubleshooting for me, but... well, I'm running out of options. Does anybody else see anything I'm doing obviously wrong?
Update 2012-12-19: I'm making some progress. I realized I was calling peerConnection.setLocalDescription() synchronously, i.e., without specifying callbacks. So now I've got some lines of code that look like this:
// Answer the call by sending a JsepAnswer message.
connection.peerConnection.createAnswer(
answer => {
connection.peerConnection.setLocalDescription(answer, () => {
var signalState: mData.SignalState = {
FromSessionId: connection.localSessionId,
ToSessionId: connection.remoteSessionId,
Message: JSON.stringify(answer)
};
me.roomHub.server.jsepAnswer(signalState);
mUtil.log("Sent JSEP answer: " + signalState.Message);
connection.readyForIceCandidates.resolve();
},
error => {
mUtil.error("Error setting local description from created answer: " + error + "; answer=" + JSON.stringify(answer));
});
},
error => {
mUtil.error("Error creating answer: " + error);
}, me.mediaConstraints);
And the setLocalDescription() error callback is showing this error:
16:14:42.439 WebRTCController.handleJsepOffer(): Error setting local description from created answer: SetLocalDescription failed.; answer={"sdp":"v=0\r\no=- 439659381 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS u9fhVrWeLLweqb5ubLkw61Ijsh6BM6vZLhjf\r\nm=audio 1 RTP/SAVPF 103 104 111 0 8 107 106 105 13 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:vOKflTJ56gV0R9i0\r\na=ice-pwd:9nuXPMDvQ2mZATFCQyEzPRQz\r\na=sendrecv\r\na=mid:audio\r\na=rtcp-mux\r\na=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:m9q9pmLgLuFnfFC09KXKW5p8TjsKk+VdqX0OWv77\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:111 opus/48000/2\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:107 CN/48000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:126 telephone-event/8000\r\na=ssrc:548068416 cname:IXg8QRisWrd7+7f8\r\na=ssrc:548068416 msid:u9fhVrWeLLweqb5ubLkw61Ijsh6BM6vZLhjf a0\r\na=ssrc:548068416 mslabel:u9fhVrWeLLweqb5ubLkw61Ijsh6BM6vZLhjf\r\na=ssrc:548068416 label:u9fhVrWeLLweqb5ubLkw61Ijsh6BM6vZLhjfa0\r\nm=video 1 RTP/SAVPF 100 116 117\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:vOKflTJ56gV0R9i0\r\na=ice-pwd:9nuXPMDvQ2mZATFCQyEzPRQz\r\na=sendrecv\r\na=mid:video\r\na=rtcp-mux\r\na=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:m9q9pmLgLuFnfFC09KXKW5p8TjsKk+VdqX0OWv77\r\na=rtpmap:100 VP8/90000\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=ssrc:1460425980 cname:IXg8QRisWrd7+7f8\r\na=ssrc:1460425980 msid:u9fhVrWeLLweqb5ubLkw61Ijsh6BM6vZLhjf v0\r\na=ssrc:1460425980 mslabel:u9fhVrWeLLweqb5ubLkw61Ijsh6BM6vZLhjf\r\na=ssrc:1460425980 label:u9fhVrWeLLweqb5ubLkw61Ijsh6BM6vZLhjfv0\r\n","type":"answer"}
Now I just need to figure out why that particular SDP - which comes straight from the createAnswer() method - is failing.
Update 2012-12-20: I've created an online demonstration of the problem here: http://srdemo.alanta.com/. I've also turned on Chrome debug logging, with the result that I see a bunch of errors that look like this:
[6584:7308:1220/091356:ERROR:rtc_peer_connection_handler.cc(84)] Native session description is null.
[6584:7308:1220/091356:ERROR:rtc_peer_connection_handler.cc(84)] Native session description is null.
[6584:7308:1220/091356:ERROR:rtc_peer_connection_handler.cc(84)] Native session description is null.
[6584:7308:1220/091356:ERROR:rtc_peer_connection_handler.cc(84)] Native session description is null.
[6584:7308:1220/091356:ERROR:rtc_peer_connection_handler.cc(84)] Native session description is null.
Not sure what relationship they have to my problem, but I'm continuing to look into it.
*Edit 2012-12-20: I've managed (I think) to narrow the problem down. See this question for more precise details.
Figured it out. Turns out that SignalR 1.0 RC1 has a bug in it that changes any "+" in a string into a space. So lines in the SDP that looked like this:
a=ice-pwd:qZFVvgfnSso1b8UV1SUDd2+z
Were getting changed into this:
a=ice-pwd:qZFVvgfnSso1b8UV1SUDd2 z
But because not every SDP had a "+" in it on a critical line, sometimes it would work. Everything explained.
The bug has been reported to the good folks working on SignalR (see https://github.com/SignalR/SignalR/issues/1194), and in the meantime, a simple encodeURIComponent() and decodeURIComponent() around the strings in question fixed it.