MVC设计格局下 在View页面里面使用ckplayer.js
加载录制 ,在mp3格式录制上传之后
笔者发觉一些录制能够边加载边播放
不过有一些又充足,找了下原因是因为录制的元数据音讯在首先帧的时候就很是;找了下化解方案:是下载二个工具处理摄像

MVC设计格局下 在View页面里面使用ckplayer.js
加载录制 ,在MP5格式录制上传之后
笔者发觉一些录像能够边加载边播放
可是有局地又卓绝,找了下原因是因为录制的元数据消息在第2帧的时候就12分;找了下消除方案:是下载多个工具处理摄像

笔者测试是在windows下利用,所以下载的页面地址是: 
点击页面上的Download FFmpeg git-738ebb4 64-bit
Static(作者是陆十六个人的),假如您是3四人点击 Download FFmpeg git-738ebb4
32-bit Static
下载下来解压缩后笔者把公文夹改成了ffmpeg放在D盘下边
运维几个公文:
D:ffmpeg/bin/ffmpeg.exe
D:ffmpeg/bin/ffplay.exe
D:ffmpeg/bin/ffprobe.exe
那就成功安装了

C#用ckplayer.js播放 MP5格式录制实现 边加载边播放,

MVC设计情势下 在View页面里面使用ckplayer.js 加载录制,在mp4格式摄像上传之后 作者发觉有个别摄像能够边加载边播放
不过有一些又卓殊,找了下原因是因为录制的元数据消息在首先帧的时候就老大;找了下化解方案:是下载二个工具处理录像

下载的页面地址是: 

点击页面上的Download FFmpeg git-738ebb4 64-bit
Static(笔者是陆12人的),假如您是三拾一个人点击 Download FFmpeg git-738ebb4
32-bit Static

下载下来解压缩后作者把公文夹改成了ffmpeg放在D盘下边
运行三个文本:
D:ffmpeg/bin/ffmpeg.exe
D:ffmpeg/bin/ffplay.exe
D:ffmpeg/bin/ffprobe.exe
这就马到功成安装了

下边举2个差不离的例证
第②,搞一个视频文件放在D盘根目录下,主要为了便利,比如笔者放的是:D:/1.flv
在初始->运维里输入cmd,弹出命令窗口
按下边的吩咐举行操作
输入d:按回车
输入 cd ffmpeg/bin回车
如此就进去了ffmpeg的目录了,
1:测试录制截图的成效
复制如下命令,在指令行里点击鼠标右键采纳粘贴
ffmpeg -i d:/1.flv -y -f  image2 -t 0.001 -s 720×576 d:/1.jpg
探望D盘下是否生成了3个1.jpg的图样,是的话就大功告成了,不是你就认真检查下呢,看看路径是还是不是不错
2:测试d:/1.flv转成d:/1.mp4
一致,复制上边包车型地铁下令,在指令窗口里点击鼠标右键选用粘贴

ffmpeg.exe -i "d:1.flv" -y  -metadata title="这是视频标题"  -metadata comment="这是视频信息!"   -c:v libx264  -preset superfast -x264opts keyint=25  -r 15 -b:v 500k -c:a aac -strict experimental -ar 44100 -ac 2  -b:a 64k -vf  "movie=a.png[watermark];scale=1364x768[scale];[scale][watermark] overlay=30:30[out]" -f  mp4 "d:2.mp4"

等一声令下执行到位后看看D盘下是否有个mp3了,有了就印证成功了。

参数表达:

movie=是水印
-b:v 后的500k是码率
scale=后是分辩率
keyint=25 是生死攸关帧 表示每25帧会有一个关键帧

 

万一您的摄像只是元数据音信不在第2帧,下边介绍另一种mp5把元数据消息转到摄像第三帧

率先供给下载2个qt-faststart
下载地址:
下载下来解压获得qt-faststart.exe放到d:ffmpeg/bin/下边
运作命令:qt-faststart.exe d:/1.mp5 d:/2.mp4
最后出来的这几个2.VCD正是旗开得胜的了。能够边下载边播放

 

任何消除方案经过测试是行得通的 于是作者在C#个中使用CMD命令来运转

     public string Test(string cmdText)
        {
            Stopwatch w = new Stopwatch();
            w.Start();
            StringBuilder sb = new StringBuilder();
            string str = RunCmdForJobs(cmdText);
            string[] lines = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string line in lines)
            {
                string[] temp = line.Split(new string[] { ": " }, StringSplitOptions.RemoveEmptyEntries);
                if (temp.Length == 2)
                    sb.AppendFormat("{0}:{1}<br/>", temp[0], temp[1].Trim(' '));
                else if (temp.Length == 1)
                    sb.AppendFormat("{0}<br/>", temp[0]);
            }
            //sb.Append(str);  
            w.Stop();
            sb.AppendFormat("用时(毫秒):{0}<br/>", w.ElapsedMilliseconds);
            return sb.ToString();

        }
        /// <summary>  
        /// 执行cmd命令  
        /// 多命令请使用批处理命令连接符:  
        /// <![CDATA[  
        /// &:同时执行两个命令  
        /// |:将上一个命令的输出,作为下一个命令的输入  
        /// &&:当&&前的命令成功时,才执行&&后的命令  
        /// ||:当||前的命令失败时,才执行||后的命令]]>  
        /// 其他请百度  
        /// </summary>  
        public static string RunCmdForJobs(string cmdText)
        {

            StringBuilder sb = new StringBuilder();
            using (Process p = new Process())
            {
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.WorkingDirectory = "D:\\ffmpeg\\bin";   //这个属性是设置CMD命令在哪个路径下执行,这里绑定我的视频元数据信息处理工具的路径。
                p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动  
                p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息  
                p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息  
                p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出  
                p.StartInfo.CreateNoWindow = false;          //不显示程序窗口  
                p.Start();//启动程序  
                //向cmd窗口写入命令  
                p.StandardInput.WriteLine(cmdText + "&exit");
                p.StandardInput.AutoFlush = true;
                //获取cmd窗口的输出信息  
                StreamReader reader = p.StandardOutput;//截取输出流  
                string line = reader.ReadLine();//每次读取一行  
                sb.Append(line + "\n");
                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();
                    sb.Append(line + "\n");
                }
                p.WaitForExit();//等待程序执行完退出进程  
                p.Close();
            }
            return sb.ToString();
        }

  

 

mp3格式录制达成边加载边播放, MVC设计格局下 在View页面里面使用ckplayer.js 加载录像,在MP3格式 摄像上传之后 小编发觉某…

下载的页面地址是: 

下载的页面地址是: 

上边举二个不难的事例
首先,搞多个摄像文件放在D盘根目录下,主要为了方便,比如小编放的是:D:/1.flv
在上马->运营里输入cmd,弹出命令窗口
【澳门金沙国际】MP5格式录像达成,边加载边播放。按上面包车型地铁命令进行操作
输入d:按回车
输入 cd ffmpeg/bin回车
如此那般就进入了ffmpeg的目录了,
1:测试摄像截图的效应
复制如下命令,在命令行里点击鼠标右键选择粘贴
ffmpeg -i d:/1.flv -y -f  image2 -t 0.001 -s 720×576 d:/1.jpg
看望D盘下是还是不是生成了3个1.jpg的图片,是的话就打响了,不是您就信以为真反省下啊,看看路径是还是不是科学
2:测试d:/1.flv转成d:/1.mp4
同样,复制下边包车型地铁通令,在命令窗口里点击鼠标右键选拔粘贴

点击页面上的Download FFmpeg git-738ebb4 64-bit
Static(作者是陆十六个人的),假若您是30个人点击 Download FFmpeg git-738ebb4
32-bit Static

点击页面上的Download FFmpeg git-738ebb4 64-bit
Static(作者是陆十二个人的),假设你是三14人点击 Download FFmpeg git-738ebb4
32-bit Static

ffmpeg.exe -i “d:1.flv” -y  -metadata title=”那是录像标题”  -metadata comment=”这是摄像音讯!”   -c:v libx264  -preset superfast -x264opts keyint=25  -r 15 -b:v 500k -c:a aac -strict experimental -ar 44100 -ac 2  -b:a 64k -vf  “movie=a.png[watermark];scale=1364×768[scale];[scale][watermark] overlay=30:30[out]” -f  mp4 “d:2.mp4”

下载下来解压缩后小编把文件夹改成了ffmpeg放在D盘上面
运作八个公文:
D:ffmpeg/bin/ffmpeg.exe
D:ffmpeg/bin/ffplay.exe
D:ffmpeg/bin/ffprobe.exe
那就打响安装了

下载下来解压缩后自个儿把公文夹改成了ffmpeg放在D盘上面
运维两个文件:
D:ffmpeg/bin/ffmpeg.exe
D:ffmpeg/bin/ffplay.exe
D:ffmpeg/bin/ffprobe.exe
那就马到成功安装了

等一声令下执行到位后看看D盘下是否有个mp5了,有了就认证成功了。

下边举一个不难的事例
第二,搞三个摄像文件放在D盘根目录下,主要为了方便,比如小编放的是:D:/1.flv
在早先->运营里输入cmd,弹出命令窗口
按上面包车型大巴下令举行操作
输入d:按回车
输入 cd ffmpeg/bin回车
那般就进入了ffmpeg的目录了,
1:测试录制截图的功能
复制如下命令,在指令行里点击鼠标右键选取粘贴
ffmpeg -i d:/1.flv -y -f  image2 -t 0.001 -s 720×576 d:/1.jpg
探望D盘下是否生成了2个1.jpg的图样,是的话就打响了,不是你就认真检查下啊,看看路径是或不是科学
2:测试d:/1.flv转成d:/1.mp4
如出一辙,复制上面包车型客车通令,在指令窗口里点击鼠标右键选取粘贴

上边举一个简单的例子
率先,搞三个录像文件放在D盘根目录下,重要为了方便,比如作者放的是:D:/1.flv
在开首->运维里输入cmd,弹出命令窗口
按上边包车型地铁通令实行操作
输入d:按回车
输入 cd ffmpeg/bin回车
那样就进入了ffmpeg的目录了,
1:测试录像截图的效果
复制如下命令,在指令行里点击鼠标右键选用粘贴
澳门金沙国际,ffmpeg -i d:/1.flv -y -f  image2 -t 0.001 -s 720×576 d:/1.jpg
探访D盘下是还是不是生成了三个1.jpg的图纸,是的话就打响了,不是你就认真反省下啊,看看路径是否合情合理
2:测试d:/1.flv转成d:/1.mp4
同等,复制下边包车型地铁吩咐,在指令窗口里点击鼠标右键选取粘贴

参数表达:

ffmpeg.exe -i “d:1.flv” -y  -metadata title=”那是摄像标题”  -metadata comment=”那是录像音信!”   -c:v libx264  -preset superfast -x264opts keyint=25  -r 15 -b:v 500k -c:a aac -strict experimental -ar 44100 -ac 2  -b:a 64k -vf  “movie=a.png[watermark];scale=1364×768[scale];[scale][watermark] overlay=30:30[out]” -f  mp4 “d:2.mp4”

ffmpeg.exe -i “d:1.flv” -y  -metadata title=”那是摄像标题”  -metadata comment=”这是录制消息!”   -c:v libx264  -preset superfast -x264opts keyint=25  -r 15 -b:v 500k -c:a aac -strict experimental -ar 44100 -ac 2  -b:a 64k -vf  “movie=a.png[watermark];scale=1364×768[scale];[scale][watermark] overlay=30:30[out]” -f  mp4 “d:2.mp4”

movie=是水印
-b:v 后的500k是码率
scale=后是分辩率
keyint=25 是重要帧 表示每25帧会有贰个关键帧

等一声令下执行到位后看看D盘下是或不是有个mp4了,有了就证实成功了。

等一声令下执行到位后看看D盘下是还是不是有个mp5了,有了就证实成功了。

 

参数表明:

参数表达:

如若您的摄像只是元数据新闻不在第①帧,上面介绍另一种mp3把元数据音讯转到录制第壹帧

movie=是水印
-b:v 后的500k是码率
scale=后是分辩率
keyint=25 是非同一般帧 表示每25帧会有二个关键帧

movie=是水印
-b:v 后的500k是码率
scale=后是分辩率
keyint=25 是必不可缺帧 表示每25帧会有三个关键帧

先是供给下载一个qt-faststart
下载地址:
下载下来解压得到qt-faststart.exe放到d:ffmpeg/bin/上边
运营命令:qt-faststart.exe d:/1.mp5 d:/2.mp3
说到底出来的那个2.mp3就是马到功成的了。能够边下载边播放
关于详细的参数设置,请自行网上搜索了然依然看使用表达

 

 

只要你的录制只是元数据消息不在第2帧,上边介绍另一种mp3把元数据消息转到录制第三帧

假若你的录像只是元数据新闻不在第三帧,下边介绍另一种mp3把元数据消息转到录制第壹帧

率先必要下载一个qt-faststart
下载地址:
下载下来解压获得qt-faststart.exe放到d:ffmpeg/bin/上边
运作命令:qt-faststart.exe d:/1.VCD d:/2.mp5
最后出来的这几个2.VCD正是成功的了。可以边下载边播放

先是须要下载一个qt-faststart
下载地址:
下载下来解压获得qt-faststart.exe放到d:ffmpeg/bin/上面
运营命令:qt-faststart.exe d:/1.mp3 d:/2.mp4
末段出来的那几个2.VCD就是打响的了。可以边下载边播放

 

 

总体化解方案经过测试是实用的 于是自个儿在C#内部使用CMD命令来运转

全套化解方案经过测试是卓有作用的 于是本身在C#里面使用CMD命令来运维

     public string Test(string cmdText)
        {
            Stopwatch w = new Stopwatch();
            w.Start();
            StringBuilder sb = new StringBuilder();
            string str = RunCmdForJobs(cmdText);
            string[] lines = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string line in lines)
            {
                string[] temp = line.Split(new string[] { ": " }, StringSplitOptions.RemoveEmptyEntries);
                if (temp.Length == 2)
                    sb.AppendFormat("{0}:{1}<br/>", temp[0], temp[1].Trim(' '));
                else if (temp.Length == 1)
                    sb.AppendFormat("{0}<br/>", temp[0]);
            }
            //sb.Append(str);  
            w.Stop();
            sb.AppendFormat("用时(毫秒):{0}<br/>", w.ElapsedMilliseconds);
            return sb.ToString();

        }
        /// <summary>  
        /// 执行cmd命令  
        /// 多命令请使用批处理命令连接符:  
        /// <![CDATA[  
        /// &:同时执行两个命令  
        /// |:将上一个命令的输出,作为下一个命令的输入  
        /// &&:当&&前的命令成功时,才执行&&后的命令  
        /// ||:当||前的命令失败时,才执行||后的命令]]>  
        /// 其他请百度  
        /// </summary>  
        public static string RunCmdForJobs(string cmdText)
        {

            StringBuilder sb = new StringBuilder();
            using (Process p = new Process())
            {
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.WorkingDirectory = "D:\\ffmpeg\\bin";   //这个属性是设置CMD命令在哪个路径下执行,这里绑定我的视频元数据信息处理工具的路径。
                p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动  
                p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息  
                p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息  
                p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出  
                p.StartInfo.CreateNoWindow = false;          //不显示程序窗口  
                p.Start();//启动程序  
                //向cmd窗口写入命令  
                p.StandardInput.WriteLine(cmdText + "&exit");
                p.StandardInput.AutoFlush = true;
                //获取cmd窗口的输出信息  
                StreamReader reader = p.StandardOutput;//截取输出流  
                string line = reader.ReadLine();//每次读取一行  
                sb.Append(line + "\n");
                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();
                    sb.Append(line + "\n");
                }
                p.WaitForExit();//等待程序执行完退出进程  
                p.Close();
            }
            return sb.ToString();
        }
     public string Test(string cmdText)
        {
            Stopwatch w = new Stopwatch();
            w.Start();
            StringBuilder sb = new StringBuilder();
            string str = RunCmdForJobs(cmdText);
            string[] lines = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string line in lines)
            {
                string[] temp = line.Split(new string[] { ": " }, StringSplitOptions.RemoveEmptyEntries);
                if (temp.Length == 2)
                    sb.AppendFormat("{0}:{1}<br/>", temp[0], temp[1].Trim(' '));
                else if (temp.Length == 1)
                    sb.AppendFormat("{0}<br/>", temp[0]);
            }
            //sb.Append(str);  
            w.Stop();
            sb.AppendFormat("用时(毫秒):{0}<br/>", w.ElapsedMilliseconds);
            return sb.ToString();

        }
        /// <summary>  
        /// 执行cmd命令  
        /// 多命令请使用批处理命令连接符:  
        /// <![CDATA[  
        /// &:同时执行两个命令  
        /// |:将上一个命令的输出,作为下一个命令的输入  
        /// &&:当&&前的命令成功时,才执行&&后的命令  
        /// ||:当||前的命令失败时,才执行||后的命令]]>  
        /// 其他请百度  
        /// </summary>  
        public static string RunCmdForJobs(string cmdText)
        {

            StringBuilder sb = new StringBuilder();
            using (Process p = new Process())
            {
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.WorkingDirectory = "D:\\ffmpeg\\bin";   //这个属性是设置CMD命令在哪个路径下执行,这里绑定我的视频元数据信息处理工具的路径。
                p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动  
                p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息  
                p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息  
                p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出  
                p.StartInfo.CreateNoWindow = false;          //不显示程序窗口  
                p.Start();//启动程序  
                //向cmd窗口写入命令  
                p.StandardInput.WriteLine(cmdText + "&exit");
                p.StandardInput.AutoFlush = true;
                //获取cmd窗口的输出信息  
                StreamReader reader = p.StandardOutput;//截取输出流  
                string line = reader.ReadLine();//每次读取一行  
                sb.Append(line + "\n");
                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();
                    sb.Append(line + "\n");
                }
                p.WaitForExit();//等待程序执行完退出进程  
                p.Close();
            }
            return sb.ToString();
        }

  

  

 

 

相关文章