Hi there... Since you are doing the recording on a computer, have you given any thought to starting the three streams at exactly the same time with a script? Something like: #!/bin/bash ffmpeg command1 arguments < /dev/null & ffmpeg command2 arguments < /dev/null & ffmpeg command3 arguments < /dev/null
The "&" instructs bash to background the run command, and start executing the next one. http://hacktux.com/bash-ampersand/ and the < /dev/null is to stop ffmpeg grabbing keyboard inputs. https://unix.stackexchange.com/questions/119167/is-this-redirecting-to-dev-null FYI, stopping the recording should be as simple as pressing Ctrl-C on the last running ffmpeg, and all the streams should terminate at the same time, too. I hope that helps? KInd regards, -Evert- On 22 August 2017 at 14:20, Kim Thomassen <[email protected]> wrote: > I have two IP cameras and a USB microphone, and basically, I need to > record/sync up these three devices to an accuracy of about a millisecond, > though perhaps I can get away with them being a couple of milliseconds out > of sync, and write them to a single output file. I need them to be so close > to each other because they will later be connected into a single panorama > output. > > The cameras themselves are some cheap no-brand ones, recording in 4k, and > they can't keep track of time, so I have to do all the managing on my > machine. The timestamps I get from them are all wrong. > > I early on experimented with just getting my streams through one ffmpeg > command; > >ffmpeg -i rtsp://192.168.0.202/av0_0 -map 0 -y -t 13 "file-202.ts" -i > rtsp://192.168.0.203/av0_0 -map 1 -y -t 13 "file-203.ts" > > However I wasn't able to get them to synchronize anywhere near close > enough, so I abandoned this setup pretty quickly. > > What I'm attempting at the moment, is to use the "at" utility, to schedule > the two video streams to start recording at the same time, and I then > filter them through vstack to test the synchonizity, and while I do get > pretty close, it's sometimes in the wind wether the recording is actually > in sync. > > The command I use to record is, located in a record.sh script; > >ffmpeg -thread_queue_size 512 -rtsp_transport tcp -i > rtsp://192.168.0.$THISIP/av0_0 > -y -t $TIME "$THISIP.ts" > > And pertinent parts of the connector script is; > >for ((n=0;n<$NOCAMERAS;n++)) > > do > > at now +1 minutes <<< "$PWD/record.sh $THISIP $TIME" & > > done > > And the part of the connector script which stacks the videos atop each > other; > >ffmpeg -i "202.ts" -i "203.ts" -y -filter_complex > "[1][0]scale2ref[2nd][ref];[ref][2nd]vstack" -c:v libx264 -crf 23 -preset > veryfast "mixer-$NOW.mp4" > > I'm not excactly completely satisfied with the result but as it's somewhat > close, I've started on also doing the audio recording; > >ffmpeg -f alsa -i hw:2 -rtsp_transport tcp -i rtsp:// > 192.168.0.202/av0_0 -y -c:a aac -vcodec copy -t 12 "VidAud.mp4" > > But this gives horrible results, the audio/video streams are sometimes out > of sync by up over a second. > > I wanted to incoorporate the audio recording into the connector script, but > I'm not sure that I have the right direction on solving this problem > anymore, and I was hoping maybe someone had some input. > > Please let me know if you need me to expand on anything. > _______________________________________________ > ffmpeg-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > [email protected] with subject "unsubscribe". -- Evert Vorster Isometrix Acquistion Superchief _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
