/// <summary>刷新视频资源列表</summary> private void FreshVideosList() { ShowMessage(); _videoInfoList = VideoHelper.GetSourceVideosList(); gridControl1.DataSource = _videoInfoList; HideMessage(); }
/// <summary>加载视频列表信息</summary> private void LoadSceneList() { Dictionary <string, Image> sceneNameImageDic = VideoHelper.GetSceneNameImageDic(); navBarControlVideos.Items.Clear(); foreach (var pair in sceneNameImageDic) { AddItemToNavBar(pair.Key, pair.Value); } }
/// <summary>加载场景列表信息</summary> private void LoadSceneList() { Dictionary <string, Image> sceneNameImageDic = VideoHelper.GetSceneNameImageDic(); foreach (var pair in sceneNameImageDic) { AddItemToNavBar(pair.Key, pair.Value); } navBarGroupVideos.SelectedLinkIndex = -1; navBarGroupVideos.ItemChanged += navBarGroupVideos_ItemChanged; navBarGroupVideos.SelectedLinkIndex = 0; }
//删除场景 private void simpleButtonDelete_Click(object sender, EventArgs e) { if (navBarGroupVideos.SelectedLink.ItemName.Equals("navBarItemAll")) { return; } string videoName = navBarGroupVideos.SelectedLink.Caption; if (MessageBox.Show(@"确定删除选中的场景吗?", @"删除提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { VideoHelper.DeleteScene(videoName); DeleteSceneItem(); } }
/// <summary>刷新场景图片</summary> private void FreshSceneItem(NavBarItemLink narBarItemLink) { bool isExistThumbnail = true; string itemPath = FileHelper.GetFileAbsolutePath("Resources\\") + "item.png"; string sceneName = narBarItemLink.Caption; string pathName = FileHelper.GetFileAbsolutePath("CombVideos\\") + sceneName + ".mp4"; string imagePath = FileHelper.GetFileAbsolutePath("VideoThumbnails\\") + sceneName + ".jpg"; if (!File.Exists(imagePath)) { isExistThumbnail = VideoHelper.CreateThumbnail(pathName, imagePath); } Image image = isExistThumbnail ? Image.FromFile(imagePath) : Image.FromFile(itemPath); Bitmap bmp = new Bitmap(image); image.Dispose(); narBarItemLink.Item.LargeImage = bmp; }
private void VideoCombine1(NavBarItemLink narBarItemLink) { if (_sceneVideoInfoList.Count == 0) { MessageBox.Show("请添加视频"); return; } //等待窗口调用 ShowMessage(); for (int i = 0; i < _sceneVideoInfoList.Count; i++) { SplashScreenManager.Default.SetWaitFormCaption("正在处理第" + (i + 1) + "个视频,请稍后..."); SplashScreenManager.Default.SetWaitFormCaption("正在处理第" + (i + 1) + "个视频,请稍后..."); VideoInfo videoInfo = _sceneVideoInfoList[i]; string cmdConvert;//转换命令 string convertVideoName = FileHelper.GetFileAbsolutePath("SourceVideos\\") + videoInfo.VideoName + ".mp4"; string tempVideoName = FileHelper.GetFileAbsolutePath("SourceVideos\\") + videoInfo.VideoName + ".ts"; if (!videoInfo.VideoFormat.Equals(".mp4")) { cmdConvert = VideoHelper.ConvertToMp4Cmd(videoInfo.VideoPath, convertVideoName); VideoHelper.RunFFMpeg(_ffmpegPath, cmdConvert); } //文件格式转换mp4->mpegts cmdConvert = VideoHelper.Mp4ToTsCmd(convertVideoName, tempVideoName); VideoHelper.RunFFMpeg(_ffmpegPath, cmdConvert); } string itemCaption = narBarItemLink.Caption; //创建或更新视频列表.txt VideoHelper.CreateOrUpdateVideoList(_sceneVideoInfoList, itemCaption); //视频合并命令 string cmdCombine = VideoHelper.GetCombineCmd(_sceneVideoInfoList, itemCaption); VideoHelper.RunFFMpeg(_ffmpegPath, cmdCombine); //刷新当前场景的截图 FreshSceneItem(narBarItemLink); VideoHelper.DeleteTempVideos(_sceneVideoInfoList); HideMessage(); }
/// <summary>视频合并操作</summary> /// <param name="narBarItemLink"></param> private void VideoCombine(NavBarItemLink narBarItemLink) { if (_sceneVideoInfoList.Count == 0) { MessageBox.Show("请添加视频"); return; } //等待窗口调用 ShowMessage(); foreach (var videoInfo in _sceneVideoInfoList) { string cmdConvert;//转换命令 string convertVideoName = FileHelper.GetFileAbsolutePath("SourceVideos\\") + videoInfo.VideoName + ".mp4"; string tempVideoName = FileHelper.GetFileAbsolutePath("SourceVideos\\") + videoInfo.VideoName + ".ts"; if (!videoInfo.VideoFormat.Equals(".mp4")) { cmdConvert = VideoHelper.ConvertToMp4Cmd(videoInfo.VideoPath, convertVideoName); VideoHelper.RunFFMpeg(_ffmpegPath, cmdConvert); } //文件格式转换mp4->mpegts cmdConvert = VideoHelper.Mp4ToTsCmd(convertVideoName, tempVideoName); VideoHelper.RunFFMpeg(_ffmpegPath, cmdConvert); } string itemCaption = narBarItemLink.Caption; //创建或更新视频列表.txt VideoHelper.CreateOrUpdateVideoList(_sceneVideoInfoList, itemCaption); //视频合并命令 string cmdCombine = VideoHelper.GetCombineCmd(_sceneVideoInfoList, itemCaption); if (VideoHelper.RunFFMpeg(_ffmpegPath, cmdCombine)) { //刷新当前场景的截图 FreshSceneItem(narBarItemLink); VideoHelper.DeleteTempVideos(_sceneVideoInfoList); simpleButtonCombine.Visible = false; } HideMessage(); }
/// <summary>刷新场景item对应的视频列表</summary> /// <param name="item"></param> private void FreshSceneVideoList(string item) { _sceneVideoInfoList = VideoHelper.GetCurrentSceneVideosData(item); gridControl1.DataSource = _sceneVideoInfoList; }