public VideoFile GetVideoInfo(MemoryStream inputFile, string Filename) { string tempfile = Path.Combine(this.AppPath, System.Guid.NewGuid().ToString() + Path.GetExtension(Filename)); FileStream fs = File.Create(tempfile); inputFile.WriteTo(fs); fs.Flush(); fs.Close(); GC.Collect(); VideoFile vf = null; try { vf = new VideoFile(tempfile); } catch (Exception ex) { throw ex; } GetVideoInfo(vf); try { File.Delete(tempfile); } catch (Exception) { } return vf; }
public void GetVideoInfo(VideoFile input) { //set up the parameters for video info string Params = string.Format("-i {0}", input.Path); string output = RunProcess(Params); input.RawInfo = output; //get duration Regex re = new Regex("[D|d]uration:.((\\d|:|\\.)*)"); Match m = re.Match(input.RawInfo); if (m.Success) { string duration = m.Groups[1].Value; string[] timepieces = duration.Split(new char[] { ':', '.' }); if (timepieces.Length == 4) { input.Duration = new TimeSpan(0, Convert.ToInt16(timepieces[0]), Convert.ToInt16(timepieces[1]), Convert.ToInt16(timepieces[2]), Convert.ToInt16(timepieces[3])); } } //get audio bit rate re = new Regex("[B|b]itrate:.((\\d|:)*)"); m = re.Match(input.RawInfo); double kb = 0.0; if (m.Success) { Double.TryParse(m.Groups[1].Value, out kb); } input.BitRate = kb; //get the audio format re = new Regex("[A|a]udio:.*"); m = re.Match(input.RawInfo); if (m.Success) { input.AudioFormat = m.Value; } //get the video format re = new Regex("[V|v]ideo:.*"); m = re.Match(input.RawInfo); if (m.Success) { input.VideoFormat = m.Value; } //get the video format re = new Regex("(\\d{2,3})x(\\d{2,3})"); m = re.Match(input.RawInfo); if (m.Success) { int width = 0; int height = 0; int.TryParse(m.Groups[1].Value, out width); int.TryParse(m.Groups[2].Value, out height); input.Width = width; input.Height = height; } input.infoGathered = true; }
public OutputVideo ConvertToWmv(VideoFile input) { if (!input.infoGathered) { GetVideoInfo(input); } OutputVideo ou = new OutputVideo(); //set up the parameters for getting a previewimage string filename = System.Guid.NewGuid().ToString() + ".flv"; string finalpath = Path.Combine(this.AppPath, filename); string Params =string.Format("-i {0} -y -ar 22050 -ab 64 -f flv {1}", input.Path, finalpath); // ou.RawOutput = RunProcess(Params); if (File.Exists(finalpath)) { ou.VideoStream = LoadMemoryStreamFromFile(finalpath); try { File.Delete(finalpath); } catch (Exception) { } } return ou; }
public VideoFile GetVideoInfo(string inputPath) { VideoFile vf = null; try { vf = new VideoFile(inputPath); } catch (Exception ex) { throw ex; } GetVideoInfo(vf); return vf; }