I’m trying to stream my live video into Amazon IVS and I don’t see it on the live channels.
Is it possible I have a mistake in my FFMPEG configuration?
I’m expecting to see this in my playback url or on the console screen for playback.
` async sendDataToIvs(channelArn: string, payload: any): Promise<void> {
const injestServer = '***.global-contribute.live-video.net';
const streamKey = 'sk_us-east-1_*****';
const ffmpeg = spawn('ffmpeg', [
'-re', // Read input at native frame rate
'-i', '-', // Input from stdin (live stream data)
'-r', '30', // Frame rate
'-c:v', 'libx264', // Video codec - H.264
'-pix_fmt', 'yuv420p', // Pixel format
'-profile:v', 'main', // H.264 profile
'-preset', 'veryfast', // Encoder quality setting
'-x264opts', 'nal-hrd=cbr:no-scenecut', // Additional x264 options
'-minrate', '3000', // Minimum bitrate
'-maxrate', '3000', // Maximum bitrate
'-g', '60', // GOP size
'-c:a', 'aac', // Audio codec
'-b:a', '160k', // Audio bitrate
'-ac', '2', // Audio channels
'-ar', '44100', // Audio sample rate
'-f', 'flv', // Output format
`rtmps://${injestServer}:443/app/${streamKey}` // Output destination
]);
ffmpeg.stdin.write(payload, (err) => {
console.log(payload)
if (err) console.error('Error writing payload to FFmpeg stdin:', err);
});
ffmpeg.on('close', (code) => {
console.log(`FFmpeg process exited with code ${code}`);
});
ffmpeg.stdin.on('error', (err) => {
console.error('Error writing to FFmpeg stdin:', err);
});
ffmpeg.stderr.on('data', (data) => {
console.error(`FFmpeg error: ${data}`);
});
} `