首页新闻找找看学习计划

C#有个视频预览图的问题

0
[待解决问题]

1、我用的ffmpeg,但是很慢,

2、我有个文件夹里有很多文件,比如,图片,视频,

图片是很快,直接能预览了,

但是视频的话,要先截取视频里面的一帧,才能预览出来

所以,有什么其他思路能提高视频预览图的效率吗

一首歌听到忘世的主页 一首歌听到忘世 | 初学一级 | 园豆:138
提问于:2018-03-01 09:09
< >
分享
所有回答(2)
0

没。

第一帧读出来后缓存起来呗,下次就不用了。

注意黑场帧哦。

日暮青色 | 园豆:339 (菜鸟二级) | 2018-03-01 09:51

windows自带的预览,他的速度就非常快,

还是说,视频本身自带预览图,只是我们没注意

支持(0) 反对(0) 一首歌听到忘世 | 园豆:138 (初学一级) | 2018-03-01 10:17

@一首歌听到忘世:

视频本身是没有预览图的。

ffmpeg也不慢啊,解码,取到第一个非黑场帧,几十毫秒的事。

不用ffmpeg用啥,用Media Foundation?学来干嘛。

支持(0) 反对(0) 日暮青色 | 园豆:339 (菜鸟二级) | 2018-03-01 10:29

@日暮青色: 我整个取帧时间,到预览显示,要花,将近1秒钟,200多兆的视频

支持(0) 反对(0) 一首歌听到忘世 | 园豆:138 (初学一级) | 2018-03-01 10:51

@一首歌听到忘世: ....你逗我

支持(0) 反对(0) 日暮青色 | 园豆:339 (菜鸟二级) | 2018-03-01 12:47

@日暮青色: 我是认真的,,不然我不会人为这是慢的了,,,

支持(0) 反对(0) 一首歌听到忘世 | 园豆:138 (初学一级) | 2018-03-01 12:58

@一首歌听到忘世: 怎么用的ffmpeg啊

支持(0) 反对(0) 日暮青色 | 园豆:339 (菜鸟二级) | 2018-03-01 20:01

@日暮青色: 

应该是这么做的吧

private string GenThupImage(string videoPath)
        {
            string ffmpegPath = @"C:\Users\wesly\Desktop\ffmpeg.exe";//为ffmpeg的全路径  
            string oriVideoPath = videoPath;//为视频的全路径  
            int frameIndex = 1;//为帧处在的秒数  
            int thubWidth = 200;//为缩略图的宽度  
            int thubHeight = 100; //为缩略图的高度  
            string thubImagePath = @"D:\2.jpg";//为生成的缩略图所在的路径  
            string command = string.Format("\"{0}\" -i \"{1}\" -ss {2} -vframes 1 -r 1 -ac 1 -ab 2 -s {3}*{4} -f image2 \"{5}\"", ffmpegPath, oriVideoPath, frameIndex, thubWidth, thubHeight, thubImagePath);
            Execute(command);
            return thubImagePath;

        }
        /// <summary>  
        /// 调用cmd命令  
        /// </summary>  
        /// <param name="str"></param>  
        private void Execute(string str)
        {

            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = false;    //是否使用操作系统shell启动  
            p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息  
            p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息  
            p.StartInfo.RedirectStandardError = true;//重定向标准错误输出  
            p.StartInfo.CreateNoWindow = true;//不显示程序窗口  
            p.Start();//启动程序  

            //向cmd窗口发送输入信息  
            p.StandardInput.WriteLine(str + "&exit");
            p.StandardInput.AutoFlush = true;
            //获取cmd窗口的输出信息  
            string output = p.StandardOutput.ReadToEnd();
            p.WaitForExit();//等待程序执行完退出进程  
            p.Close();

        }
支持(0) 反对(0) 一首歌听到忘世 | 园豆:138 (初学一级) | 2018-03-02 09:17

@一首歌听到忘世: 难怪,我P/Invoke调用的动态库,包含黑场帧检测,几十毫秒吧。

支持(0) 反对(0) 日暮青色 | 园豆:339 (菜鸟二级) | 2018-03-02 11:03

@日暮青色: 能教我吗

支持(0) 反对(0) 一首歌听到忘世 | 园豆:138 (初学一级) | 2018-03-02 11:12

@一首歌听到忘世: 同学,加油吧。ffmpeg相关的资料很多。

支持(0) 反对(0) 日暮青色 | 园豆:339 (菜鸟二级) | 2018-03-04 11:41

@日暮青色: 我找资料的能力有问题,,windows 下我用mingw编译ffmpeg,然后

输入

./configure --enable-shared --disable-static --enable-memalign-hack

显示的是Unkuow option “--enable-memalign-hack”。

我也不知道这几个指令代表的是什么意思。

配置不成功。更别说编译了

支持(0) 反对(0) 一首歌听到忘世 | 园豆:138 (初学一级) | 2018-03-06 18:51
0

windows自带的视频预览和速度非常块完全不搭界.

吴瑞祥 | 园豆:28675 (高人七级) | 2018-03-01 10:36

能知道windows自带的视频预览的原理吗

支持(0) 反对(0) 一首歌听到忘世 | 园豆:138 (初学一级) | 2018-03-01 10:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册