Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FFMPEG Disconnect #5

Open
remymatheus opened this issue May 12, 2021 · 3 comments
Open

FFMPEG Disconnect #5

remymatheus opened this issue May 12, 2021 · 3 comments

Comments

@remymatheus
Copy link

Hello friend, good job, the server generates the following error once FFMPEG starts:

libpostproc    55.  5.100 / 55.  5.100
[sdp @ 0x5577fa3e0d00] Could not find codec parameters for stream 1 (Video: h264, none): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, sdp, from 'rtp-forwarder.sdp':
  Metadata:
    title           : Pion WebRTC
  Duration: N/A, bitrate: N/A
    Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
    Stream #0:1: Video: h264, none, 90k tbr, 90k tbn, 180k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (opus (native) -> aac (native))

Metadata:
    title           : Pion WebRTC
    encoder         : Lavf58.29.100
    Stream #0:0: Audio: aac (LC) ([10][0][0][0] / 0x000A), 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc58.54.100 aac
[flv @ 0x5577fa488700] Failed to update header with correct duration.
[flv @ 0x5577fa488700] Failed to update header with correct filesize.
size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[aac @ 0x5577fa46ec40] Qavg: -nan
Connection State has changed failed
Connection State has changed closed

Thanks for your reply.

@remymatheus
Copy link
Author

I think it may be a problem of my HTML client, could you help me with an example of HTML client, thank you very much for your help.

navigator.mediaDevices
	.getUserMedia({
		audio: true,
		video: true,
	})
	.then((cameraStream) => {
		const pc = new RTCPeerConnection({
			sdpSemantics: 'unified-plan',
		});

		cameraStream.getTracks().forEach(track => pc.addTrack(track, cameraStream));

		pc.createOffer()
			.then((offer) => pc.setLocalDescription(offer))
			.then(() =>
				fetch('http://xxx.xxx.xxx.xxx:8090/webrtc/offer', {
					method: 'POST',
					headers: { 'Content-Type': 'application/json' },
					body: JSON.stringify({
						"ingestionAddress":"xxxxx",
						"streamKey": "xxxxxxxxx",
						"offer": JSON.stringify(pc.localDescription)
					})
				})
			)
			.then((res) => {
				if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
				return res.json();
			})
			.then((answer) => pc.setRemoteDescription(answer))
			.catch((err) => console.error(err));

@grantfayvor
Copy link
Owner

grantfayvor commented May 13, 2021

Hey @remymatheus, try creating a peer connection with the google stun server like

new RTCPeerConnection({ iceServers: [ { urls: 'stun:stun.l.google.com:19302' } ] });

Also, if both clients (Go and JavaScript) are on separate machines, you would want to either trickle ice or wait until ice gathering is complete before sending the remoteDescription

@Momenul-TCS
Copy link

Hello @remymatheus I am facing the same error in the server. Did you manage to solve that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants