- 浏览: 994527 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (394)
- OSGI (14)
- 多线程 (10)
- 数据库 (30)
- J2ME (1)
- JAVA基础知识 (46)
- 引用包 (1)
- 设计模式 (7)
- 工作流 (2)
- Ubuntu (7)
- 搜索引擎 (6)
- QT (2)
- Ubuntu下编程 (1)
- 小程序 (2)
- UML (1)
- Servlet (10)
- spring (16)
- IM (12)
- 文档视频转为flash格式在线播放 (19)
- Maven (8)
- 远程调用 (2)
- PHPRPC (1)
- EXTJS学习 (2)
- Hibernate (16)
- 技术文章 (38)
- flex (5)
- 海量数据处理 (5)
- FTP (8)
- JS (10)
- Struts (1)
- hibernate search (13)
- JQuery (2)
- EMail (3)
- 算法 (4)
- SVN (7)
- JFreeChart (4)
- 面试 (4)
- 正规表达式 (2)
- 数据库性能优化 (10)
- JVM (6)
- Http Session Cookie (7)
- 网络 (12)
- Hadoop (2)
- 性能 (1)
最新评论
-
hy1235366:
能够随便也发一下,你退火算法程序使用的DistanceMatr ...
模拟退火算法总结(含例子)(转) -
梅强强:
感谢分享。。帮大忙了
swftools转换文件时线程堵塞问题的解决方法 -
wenlongsust:
openoffice和文件不在同一个服务器上,用过吗?
[JODConverter]word转pdf心得分享(转) -
2047699523:
如何在java Web项目中开发WebService接口htt ...
利用Java编写简单的WebService实例 -
abingpow:
唉,看起来好像很详细很不错的样子,可惜不是篇面向初学者的文章, ...
Spring与OSGi的整合(二)(转)
文章2: 最近完成了这个小Demo,来分享一下! 这里讲一下重要的: 这里有一个重点,网上的文章都没讲到,所以造成有些人运行后没反应,原因是上面路径的下载,有很多版本,不同的版本可能个别参数不同,而网上的文章所用的参数都是用很早的版本写的,所以会造成运行后因参数错误而没有效果 2.判断处理成功与失败或是进度是否完成,从异步获取的输出信息判断[包括获取原视频的宽与高] 文章3: Youtube的成功,使得国内的视频网站如雨后春笋般的冒出来,前不久朋友叫我帮他写一个将各种视频格式转换成flv的程序,这里就将编写程序遇
到困难和获得的经验拿出来和大家分享一下。 1、使用引擎:ffmpeg + Mencoder
2、ffmpeg最新版本的下载地址:http://ffdshow.faireal.net/mirror/ffmpeg/
Mencoder新版本的下载地址:http://www5.mplayerhq.hu/MPlayer/releases/win32/
3、转换速度比较:总体上ffmpeg转换的速度快于Mencoder 4、转换格式要求:rm、rmvb、r
Youtube的成功,使得国内的视频网站如雨后春笋般的冒出来,前不久朋友叫我帮他写一个将各种视频格式转换成flv的程序,这里就将编写程序遇到困难和获得的经验拿出来和大家分享一下。 本文旨在帮助大家少走一些弯路,并不提供实际的解决方案及相关的源码下载。
大家应该都知道Youtobe、Google Video之类视频分享网站。他们的视频全部是使用Flash播放,而通过探索实际地址,会发现下载回来的东西都是Flash支持的FLV格式。这种格式的视频,播放和转换是非常麻烦的。但是,有一个源于Linux的工具软件ffmpeg可以轻易地实现FLV向其它格式(avi(mpeg4)、asf、mpeg)的转换或者将其它格式转换为flv。
=OD'GuQ
ffmpeg作为Linux下的LGPL开源程序,在Windows下编译需要特殊的工具。我这里提供的ffmpeg.exe是2004年的旧版本,使用MinGW编译,只有一个可执行文件,可直接运行(命令行程序)。
b<td|kk
FLV向其它格式(avi(mpeg4)、asf、mpeg)转换的简易方法:(圆括号内必填,方括号内可选)
khOG Kh*
转换成wmv/asf
JZvQCf;$
ffmpeg -i (要转换的flv文件完整路径) -f asf -vcodec (wmv1或wmv2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的asf/wmv文件完整路径)
!.C1}Wf
转换成mpeg1
n Xa Os&
ffmpeg -i (要转换的flv文件完整路径) -f mpeg -vcodec mpeg1video [-b 视频码率] -acodec mp2 [-ab 音频码率] (输出的mpg文件完整路径)
=mmBjG}0{
转换成avi(msmpeg4)
z4%EYCZ'
ffmpeg -i (要转换的flv文件完整路径) -f avi -vcodec (msmpeg4或msmpeg4v1或msmpeg4v2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的avi文件完整路径)
AImbKhOK'
上面给了我两天时间,来完成这个小功能
于时我花了半天时间从网络上到处鄱资料,又花了半天时间调试代码,成功之后,终于有了以下一点的经验之谈:
1.用到两个工具,一个是ffmpeg.exe,另一个是mencoder.exe
ffmpeg最新版本的下载地址:http://ffdshow.faireal.net/mirror/ffmpeg/
Mencoder新版本的下载地址:http://www5.mplayerhq.hu/MPlayer/releases/win32/
简单处理是:把网上参数在cmd命令行执行一下,这时命令行会报哪个参数错误,把它删了即可!
这里重点在两个委托事件中,详情见以下几行代码 private void StartProcess(string tool)
{
StartProcess(tool, false);
}
private void StartProcess(string tool,bool onlyCheckInfo)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = tool;
p.StartInfo.Arguments = commandPara;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_OutputDataReceived);
if (onlyCheckInfo)//只检测文件是否可转换与获到内部宽与高
{
p.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_CheckInfoDataReceived);
}
else
{
p.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_ErrorDataReceived);
}
//开始执行
try
{
p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.WaitForExit();
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
finally
{
p.Close();
}
}
void p_CheckInfoDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
{
if (!string.IsNullOrEmpty(e.Data))
{
if (e.Data.Contains("Stream") && e.Data.Contains("Video:"))//设置原视频窗口大小作为flv视频的宽与高
{
Match match = Regex.Match(e.Data, @", (\d+)x(\d+)");
if (match != null)
{
videoWidth = match.Groups[1].Value;
videoHeight = match.Groups[2].Value;
}
}
else if (e.Data.Contains("could not find codec parameters"))//ffmpeg转换失败
{
isCanChangeToFlv = false;
Program.SetDataBase(id, 1, count + 1);
}
}
}
void p_ErrorDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
{
if (!string.IsNullOrEmpty(e.Data))
{
if (e.Data.Contains("video:") && e.Data.Contains("muxing overhead"))//ffmpeg转换完成
{
Program.SetDataBase(id, 2, count + 1);
Console.WriteLine("转换完成");
}
Console.WriteLine(e.Data);
}
}
void p_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
{
if (!string.IsNullOrEmpty(e.Data))
{
if (e.Data.Contains("Writing index"))//mencoder转换完成
{
Program.SetDataBase(id, 2, count + 1);
Console.WriteLine("转换完成");
}
//else if (e.Data.Contains("Exiting"))//mencoder转换失败
//{
// Console.WriteLine("转换失败");
//}
Console.WriteLine(e.Data);
}
}
本文只讲重点,请结合网络其它文章与本文即可!
1、使用引擎:ffmpeg + Mencoder
2、ffmpeg最新版本的下载地址:http://ffdshow.faireal.net/mirror/ffmpeg/
Mencoder新版本的下载地址:http://www5.mplayerhq.hu/MPlayer/releases/win32/
3、转换速度比较:总体上ffmpeg转换的速度快于Mencoder
4、转换格式要求:rm、rmvb、rt格式的文件只能用Mencoder转换,出于速度考虑我基本上都用ffmpeg转换,所以Mencoder能转换的格式我没有详细测试(哪个朋友知道,麻烦你告诉我下,我补充上去)。
5、纯音频格式只能用Mencoder进行转换。如何判断是否是纯音频格式可以通过使用命令 FFmpeg -i "文件的完整路径" 获得输出后就可以分析出来。
6、.mov格式的用ffmpeg转换出来的效果比较差,建议用Mencoder进行转换,wmv8用ffmpeg经常会有花屏产生建议用Mencoder。
7、视频按比率输出的问题:必须先获取源视频文件的宽度和高度(也是通过 FFmpeg -i "文件的完整路径" 获得输出后就可以分析出来)根据这个高度和宽度的比率来设定输出文件的尺寸。
8、
可能的难点:因为这ffmpeg 和
Mencoder都是命令行工具(当然你也可以下载源代码自己修改成com之类的),在C#只能用Process调用,前面我提过要获得输出信息(获取视
频相关信息、获取当前的转换进度、获取什么时候完成转换),必须设置process.StartInfo.UseShellExecute =
false; process.StartInfo.CreateNoWindow =
true;然后必须通过异步编程的方式获取Process.StandardOutput和Process.StandardError的值,相关说明可
以见(ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html
/frlrfSystemDiagnosticsProcessClassStandardOutputTopic.htm)(必须安装了msdn的才能
看)。
有其他任何问题欢迎大家在本文章发布留言。
发表评论
-
SWFTOOLS PDF2SWF 参数详解(转)
2012-01-08 16:35 2284SWFTools提供了一系列将各种文件转成swf的工具: ... -
swftools安装
2010-12-06 20:35 1950安装swftools工具时,在windows平台下是很简单的事 ... -
swftools转换文件时线程堵塞问题的解决方法
2010-11-26 09:55 5171在使用swftools工具作转换时,最需要注意的是对转换 ... -
pdf2swf fails to transform with the default options when the pdf are too large,
2010-11-25 14:10 4796if the pdf contains too many im ... -
[JODConverter]word转pdf心得分享(转)
2010-11-22 10:12 37614官方网站: http://www.artofsolving. ... -
flash 安全沙箱冲突
2010-10-28 20:46 7051下载flexpaper源码修改后做成swf阅读器,要加入待阅读 ... -
LInux下如何安装ffmpeg(转)
2010-10-11 13:55 1918终于装上了,把过程记录一下 首先要安装各种解码器 ... -
Flex Paper 源码编译
2010-10-02 09:05 8646FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组 ... -
判定文件编码(文本流编码)的方法(转)
2010-09-25 12:53 1673在程序中,文本文件经常用来存储标准的ASCII码文本,比如英文 ... -
java使用jchardet检测文本文件(字节流)的编码方式(转)
2010-09-25 12:41 2245有时需要InputStreamReader(InputStre ... -
jodconverter纯文本文件转为pdf时中文问题解决方案
2010-09-25 12:31 4926jodconverter转换ms文件都 ... -
swftools使用注意
2010-09-15 10:00 2221swftools处理堵塞问题,请看文章:Process的wai ... -
mencoder环境搭建
2010-09-06 17:33 15161 到http://www.mplayerhq.hu/desi ... -
Mencoder常用视频转换参数(转)
2010-09-06 17:14 2864参数详解:1、-ofps 15 :帧速率15fps ... -
Mencoder常用视频转换参数(转)
2010-09-06 17:13 2109参数详解: 1、-ofps 15 ... -
利用ffmpeg+mencoder视频转换的总结(转)
2010-09-06 17:00 2744Youtube的成功,使得 ... -
ffmpeg+mencoder环境搭建和视频处理总结(转)
2010-09-06 16:54 4291ffmpeg+mencoder几乎可以完成目前基于web的播客 ... -
Mencoder转换flv参数详解(转)
2010-09-06 16:24 2555Mencoder简介: Mencoder是Mpl ...
相关推荐
drv33260.dll drv43260.dll ffmpeg.exe mencoder.exe Pncrt.dll以及java程序drv33260.dll drv43260.dll ffmpeg.exe mencoder.exe Pncrt.dll以及java程序drv33260.dll drv43260.dll ffmpeg.exe mencoder.exe Pncrt....
处理多种格式视频转码工具ffmpeg.exe和mencoder.exe,根据不同的格式选择处理工具,开发亲测有效
audacity-win-2.3.3.exe audacity-win-2.3.3.exe audacity-win-2.3.3.exe
lav filters 是一组基于 ffmpeg 项目中的 libavformat/libavcodec 库的 directshow 分离器和音视频解码器,几乎允许您在 directshow 播放器中播放任何格式的媒体文件!
使用当前2020最新版ffmpeg编译好的lib包,vs2019可编译的ffmpeg.exe的源码.下载后可直接编译调试,了解ffmpeg.exe实现的原理。 打印版本号: ffmpeg version N-99305-gbc0e776 Copyright (c) 2000-2020 the FFmpeg ...
ffmpeg-win-2.2.2.zip dll 32位 avcodec-55.dll avdevice-55.dll avfilter-4.dll avformat-55.dll avutil-52.dll ffmpeg.exe 等
1.下载ffmpeg-php扩展包和ffmpeg.exe(刚开始我以为不需要这个,本地windows测试缺一不可),解压后有以下文件 avcodec-51.dll avformat-51.dll avutil-49.dll php_ffmpeg.dll pthreadGC2.dll 2. 将四个文件...
Imageio: 'ffmpeg-win32-v3.2.4.exe' was not found on your computer; downloading it now.
使用ffmpeg.exe将视频文件转换成flv格式 内含ffmpeg执行文件和对应的dll文件
ffmpeg.exe,此程序在windows32位系统下可以使用。ffmpeg主要用于音视频格式转换。
一个支持播放PCM格式文件的播放器,语音视频开发必备
ffmpeg-master-latest-win64-gpl.zip
ffmpeg.exe,它是一款音频视频转换软件。比较特殊的是,它是运行在windows下dos系统中,支持avi,FLV,asf,mpeg,mp3等等格式。使用方法如下:开始菜单--运行--cmd---然后再运行ffmpeg软件。 软件转换格式: ffmpeg...
ffmpeg-php 是一个php扩展,用来获取视频或音频信息,你可以用它从视频中截取图片、获取视频时长,视频的长、宽等。 下面介绍在windows环境下本扩展的安装,在安装本扩展之前你首先要确认你本地环境中已经安装好了...
资源全名:ffmpeg-normalize-1.15.6.tar.gz
ffmpeg-0.8.1.tar.bz2 ffmpeg源代码0.8.1版本
ffmpeg-3.2-win32-dev.zip
FFmpeg.exe Windows 32位
opencv-videoio-ffmpeg.dll
php调用ffmpeg.exe 用于 视频格式转换 的类 php调用ffmpeg.exe 用于 视频格式转换 的类 php调用ffmpeg.exe 用于 视频格式转换 的类