private static void IncrementCommentCount(CommentType type, int ObjID) { if (type == CommentType.Wall) { //Do Nothing } else if (type == CommentType.Video) { Next2Friends.Data.Video v = Next2Friends.Data.Video.GetVideoByVideoIDWithJoin(ObjID); v.NumberOfComments++; v.Save(); } else if (type == CommentType.AskAFriend) { //Do Nothing } else if (type == CommentType.Blog) { //Do Nothing } else if (type == CommentType.Photo) { Next2Friends.Data.Photo p = Next2Friends.Data.Photo.GetPhotoByPhotoIDWithJoin(ObjID); p.NumberOfComments++; p.Save(); } }
// <summary> /// Lawrence: This method appears to be obselete and was used as an interim solution for video encoder... /// </summary> /// <returns></returns> public static void ProxyProcessVideo(Stream FLVStream, Member member, string UNCPathToUserDirectory, string VideoTitle) { if (VideoTitle.Length > 35) { VideoTitle = VideoTitle.Substring(0, 35); } string VideoFileName = UniqueID.NewWebID() + ".flv"; string SavePath = UNCPathToUserDirectory + member.NickName + @"\video\" + VideoFileName; int Length = 256; Byte[] buffer = new Byte[256]; int bytesRead = FLVStream.Read(buffer, 0, Length); FileStream fs = new FileStream(SavePath, FileMode.Create); // write the required bytes while (bytesRead > 0) { fs.Write(buffer, 0, bytesRead); bytesRead = FLVStream.Read(buffer, 0, Length); } FLVStream.Close(); fs.Flush(); fs.Close(); ResourceFile VideoResourceFile = new ResourceFile(); VideoResourceFile.WebResourceFileID = UniqueID.NewWebID(); VideoResourceFile.FileName = VideoFileName; VideoResourceFile.Path = @"/" + member.NickName + @"/video/"; VideoResourceFile.ResourceType = (int)ResourceFileType.Video; VideoResourceFile.Save(); Process FFMpegProcess; FFMpegProcess = new System.Diagnostics.Process(); string ThumbnailName = UniqueID.NewWebID(); string ThumbnailSavePath = OSRegistry.GetDiskUserDirectory() + member.NickName + @"\vthmb\"; if (ThumbnailName.Length > 21) { ThumbnailName = ThumbnailName.Substring(0, 20); } string FullSavePath = ThumbnailSavePath + ThumbnailName; string arg = "-i " + SavePath + " -an -ss 00:00:07 -t 00:00:01 -r 1 -y -s 160x120 " + FullSavePath + "%d.jpg"; string cmd = @"c:\ffmpeg.exe"; FFMpegProcess = System.Diagnostics.Process.Start(cmd, arg); FFMpegProcess.WaitForExit(); FFMpegProcess.Close(); //ffmpeg must add a 1 to the end of the file ThumbnailName += "1.jpg"; ResourceFile ThumbnailResourceFile = new ResourceFile(); ThumbnailResourceFile.WebResourceFileID = UniqueID.NewWebID(); ThumbnailResourceFile.FileName = ThumbnailName; ThumbnailResourceFile.Path = member.NickName + @"/vthmb/"; ThumbnailResourceFile.ResourceType = (int)ResourceFileType.VideoThumbnail; ThumbnailResourceFile.Save(); Video video = new Video(); video.MemberID = member.MemberID; video.WebVideoID = UniqueID.NewWebID(); video.Title = VideoTitle; video.Description = "No Description"; video.DTCreated = DateTime.Now; video.VideoResourceFileID = VideoResourceFile.ResourceFileID; video.ThumbnailResourceFileID = ThumbnailResourceFile.ResourceFileID; video.Save(); // update the number of photos MemberProfile memberProfile = member.MemberProfile[0]; memberProfile.NumberOfVideos++; memberProfile.Save(); }
/// <summary> /// Saves the video file to disk /// </summary> /// <returns></returns> public static void QueueVideoForEncoding(Video video, Stream FLVStream, string Extension, Member member, string VideoTitle) { if (VideoTitle.Length > 35) { VideoTitle = VideoTitle.Substring(0, 35); } string VideoFileName = UniqueID.NewWebID(); string VideoPreprocessedInputFile = OSRegistry.GetDiskUserDirectory() + member.NickName + @"\video\" + VideoFileName + "." + Extension; string VideoInputFile = member.NickName + @"\video\" + VideoFileName + "." + Extension; string VideoOutputFile = member.NickName + @"\video\" + VideoFileName + ".flv"; int Length = 256; Byte[] buffer = new Byte[256]; int bytesRead = FLVStream.Read(buffer, 0, Length); FileStream fs = new FileStream(VideoPreprocessedInputFile, FileMode.Create); // write the required bytes while (bytesRead > 0) { fs.Write(buffer, 0, bytesRead); bytesRead = FLVStream.Read(buffer, 0, Length); } FLVStream.Close(); fs.Flush(); fs.Close(); ResourceFile VideoResourceFile = new ResourceFile(); VideoResourceFile.WebResourceFileID = UniqueID.NewWebID(); VideoResourceFile.FileName = VideoFileName + ".flv"; VideoResourceFile.Path = @"/" + member.NickName + @"/video/"; VideoResourceFile.ResourceType = (int)ResourceFileType.Video; VideoResourceFile.Save(); string ThumbnailName = UniqueID.NewWebID() + ".jpg"; string ThumbnailSavePath = member.NickName + @"\vthmb\" + ThumbnailName; ResourceFile ThumbnailResourceFile = new ResourceFile(); ThumbnailResourceFile.WebResourceFileID = UniqueID.NewWebID(); ThumbnailResourceFile.FileName = ThumbnailName; ThumbnailResourceFile.Path = member.NickName + @"/vthmb/"; ThumbnailResourceFile.ResourceType = (int)ResourceFileType.VideoThumbnail; ThumbnailResourceFile.Save(); video.MemberID = member.MemberID; video.WebVideoID = UniqueID.NewWebID(); video.Category = 1; video.DTCreated = DateTime.Now; video.VideoResourceFileID = VideoResourceFile.ResourceFileID; video.ThumbnailResourceFileID = ThumbnailResourceFile.ResourceFileID; video.Status = (int)VideoStatus.EncoderQueue; video.Save(); // update the number of photos MemberProfile memberProfile = member.MemberProfile[0]; memberProfile.NumberOfVideos++; memberProfile.Save(); VideoEncoderQueue VideoEncode = new VideoEncoderQueue(); VideoEncode.VideoID = video.VideoID; VideoEncode.VideoInputFile = VideoInputFile; VideoEncode.VideoOutputFile = VideoOutputFile; VideoEncode.ThumbnailOutputFile = ThumbnailSavePath; VideoEncode.Status = (int)VideoEncoderStatus.Ready; VideoEncode.Save(); }
public void EncodeNextVideo(VideoEncoderQueue videoEnc) { Video video = null; try { video = new Video(videoEnc.VideoID); DateTime Start = DateTime.Now; Console.WriteLine("Begin encoding"); string UserDirectory = @"\\www\user\"; //string UserDirectory = @"d:\Source3\Web\user\"; string InputFileName = UserDirectory + videoEnc.VideoInputFile; string OutputFileName = UserDirectory + videoEnc.VideoOutputFile; string ThumbnailLocation = UserDirectory + videoEnc.ThumbnailOutputFile; Turbine.TVE3 tve = new Turbine.TVE3(); // set license keys: tve.Key1 = 215362640; tve.Key2 = 1596049317; // load the base preset settings: tve.LoadSettings(@"c:\presets\300K_Broadband.settings"); tve.VideoMethod = "VBR2"; tve.VideoBitRate = 300000; // set output type (flv or swf) and output location: tve.OutputFormat = "fla"; tve.SetOutputFile(OutputFileName); // encode source synchronously: tve.EncodeAsync(InputFileName); DateTime encStart = DateTime.Now; bool EncodeOKAY = true; while (tve.EncodeAsyncIsEncoding && EncodeOKAY) { Console.WriteLine(tve.EncodeAsyncPercentage.ToString() + "% Complete"); Application.DoEvents(); if (encStart > DateTime.Now.AddMinutes(1) && tve.EncodeAsyncPercentage == 1) { EncodeOKAY = false; } Thread.Sleep(300); } // done - flush encoding: tve.EncodeFlush(); tve.InfoOpen(InputFileName); decimal Duration = 0.0M; try { int DurationMS = (int)tve.InfoGet("totalDurationMs"); TimeSpan DurationSpan = new TimeSpan(0, 0, 0, 0, DurationMS); Duration = decimal.Parse(DurationSpan.Minutes + "." + DurationSpan.Seconds); } catch { } tve.InfoSaveInputFrame(2000, ThumbnailLocation, 100); Photo.ResizeTo124x91(videoEnc.ThumbnailOutputFile); // open video again to make sure no changes have been missed video = new Video(videoEnc.VideoID); if (EncodeOKAY) { videoEnc.Status = (int)VideoEncoderStatus.Completed; video.Status = (int)VideoStatus.Active; } else { videoEnc.Status = (int)VideoEncoderStatus.Errored; videoEnc.Error = "Encoder Stalled"; video.Status = (int)VideoStatus.EncoderError; } video.Duration = Convert.ToDecimal(Duration); DateTime End = DateTime.Now; TimeSpan EncodingTime = End - Start; Console.WriteLine("Successfully encoded " + Duration.ToString() + " in " + EncodingTime.ToString()); tve.Dispose(); videoEnc.Save(); video.Save(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); videoEnc.Status = (int)VideoEncoderStatus.Errored; videoEnc.Error = ex.ToString(); videoEnc.Save(); if (video != null) { video.Status = (int)VideoStatus.EncoderError; video.Save(); } } finally { } Console.WriteLine("Finished Encoding"); }
/// <summary> /// Saves the video file to disk /// </summary> /// <returns></returns> public static void QueueVideoForEncoding(Video video, Stream FLVStream,string Extension, Member member, string VideoTitle) { if (VideoTitle.Length > 35) { VideoTitle = VideoTitle.Substring(0, 35); } string VideoFileName = UniqueID.NewWebID(); string VideoPreprocessedInputFile = OSRegistry.GetDiskUserDirectory() + member.NickName + @"\video\" + VideoFileName + "." + Extension; string VideoInputFile = member.NickName + @"\video\" + VideoFileName + "." + Extension; string VideoOutputFile = member.NickName + @"\video\" + VideoFileName + ".flv"; int Length = 256; Byte[] buffer = new Byte[256]; int bytesRead = FLVStream.Read(buffer, 0, Length); FileStream fs = new FileStream(VideoPreprocessedInputFile, FileMode.Create); // write the required bytes while (bytesRead > 0) { fs.Write(buffer, 0, bytesRead); bytesRead = FLVStream.Read(buffer, 0, Length); } FLVStream.Close(); fs.Flush(); fs.Close(); ResourceFile VideoResourceFile = new ResourceFile(); VideoResourceFile.WebResourceFileID = UniqueID.NewWebID(); VideoResourceFile.FileName = VideoFileName + ".flv"; VideoResourceFile.Path = @"/" + member.NickName + @"/video/"; VideoResourceFile.ResourceType = (int)ResourceFileType.Video; VideoResourceFile.Save(); string ThumbnailName = UniqueID.NewWebID() + ".jpg"; string ThumbnailSavePath = member.NickName + @"\vthmb\" + ThumbnailName; ResourceFile ThumbnailResourceFile = new ResourceFile(); ThumbnailResourceFile.WebResourceFileID = UniqueID.NewWebID(); ThumbnailResourceFile.FileName = ThumbnailName; ThumbnailResourceFile.Path = member.NickName + @"/vthmb/"; ThumbnailResourceFile.ResourceType = (int)ResourceFileType.VideoThumbnail; ThumbnailResourceFile.Save(); video.MemberID = member.MemberID; video.WebVideoID = UniqueID.NewWebID(); video.Category = 1; video.DTCreated = DateTime.Now; video.VideoResourceFileID = VideoResourceFile.ResourceFileID; video.ThumbnailResourceFileID = ThumbnailResourceFile.ResourceFileID; video.Status = (int)VideoStatus.EncoderQueue; video.Save(); // update the number of photos MemberProfile memberProfile = member.MemberProfile[0]; memberProfile.NumberOfVideos++; memberProfile.Save(); VideoEncoderQueue VideoEncode = new VideoEncoderQueue(); VideoEncode.VideoID = video.VideoID; VideoEncode.VideoInputFile = VideoInputFile; VideoEncode.VideoOutputFile = VideoOutputFile; VideoEncode.ThumbnailOutputFile = ThumbnailSavePath; VideoEncode.Status = (int)VideoEncoderStatus.Ready; VideoEncode.Save(); }