I'm building a cms and I want users to be able to upload videos but I'm not familiar with video upload & conversion. Is there an example or has anybody coded a solution like this? I heard about ffmpeg but I don't know how to integrate it with asp.net.
As simple solution I can make my clients upload flv files but then I would still need to get a screenshot from that fvl.
Thanks
Upload any type of video and it will generate a list of JPG (JPEG) images. Upload your video, select size and frames per second, choose the part of the video you want to convert, and click "Convert to JPG!" button. The tool will display a sequence of JPG images and allow you to download them in a zip archive.
Answering author's question:
Does ffmpeg requires to be installed server side or just exe is enough?
ffmpeg.exe will be enough, no installation is required.
The code below gets a screenshot on captureTime
on video specified by videoFilename
variable, and saves it to the imageFilename
path.
Process ffmpeg = new Process();
ffmpeg.EnableRaisingEvents = true;
ffmpeg.StartInfo = new ProcessStartInfo
{
FileName = this.ffmpegPath,
Arguments = string.Format(
"-i \"{0}\" -an -y -s 320x240 -ss {1} -vframes 1 -f image2 \"{2}\"",
this.videoFilename,
DateTime.MinValue.Add(this.captureTime).ToString("HH:mm:ss:ff", CultureInfo.InvariantCulture),
this.imageFilename
),
WorkingDirectory = this.workingDirectory,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
WindowStyle = ProcessWindowStyle.Hidden
};
ffmpeg.Start();
ffmpeg.WaitForExit(this.timeout);
I've used ffmpeg, but I found it easier to just use the pre-compiled .exe version. So in the backend, I would just launch ffmpeg.exe with the required command-line arguments to do the conversion, let it run and when it was finished the completed file was all ready to go.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With