I had worked Red5 WebCam application that lets users to record video clips from their webcams. The users could talk while they record clips.
I was using PHP with Zend Gdata for uploading recorded video clips to YouTube. But I had issue in FLV files generated by Red5 server, the clip’s audio / video content was out of sync. 🙁
Code to upload Red5 FLV to YouTube
Then after few searches I got… FFMpeg might be a good option to solve this issue to convert clip from FLV to MP4. 🙂
I have to add -itsoffset 00:00:01.16 before the -i, because flash player prompts user to allow or deny webcam access during the process the video begins to record. these are seconds of recording where nothing is recorded. To audio video sync add the itsoffset that tell ffmpeg to wait a second before it starts the the transcoding.
FFMpeg syntax to sync the audio and video using MP4 file:
<?php //........... svnlabs.com //........... $myVideoEntry = new Zend_Gdata_YouTube_VideoEntry(); $file= 'tmp/'.$fileName.".flv"; // convert FLV file to MP4 using -vcodec libx264 $mp4file= 'tmp/'.$fileName.".mp4"; exec("/usr/bin/ffmpeg -y -itsoffset 00:00:01.166000 -i ".$file." -s 640x480 -y -strict experimental -acodec aac -ab 128k -ac 2 -ar 48000 -vcodec libx264 -r 24 -g 48 -b 520000 -threads 64 ".$mp4file); $file = $mp4file; $file = realpath($file); //.... ?>
# /usr/bin/ffmpeg -i “svnlabs.flv” -s 640×480 -y -strict experimental -acodec aac -ab 128k -ac 2 -ar 48000 -vcodec libx264 -vpre medium -vpre ipod640 -r 24 -g 48 -b 520000 -threads 64 “svnlabs.mp4”
Related Article: https://www.svnlabs.com/blogs/applications/media-streaming/
If you would hit the mark, you must aim a little above it…