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、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的才能看)。
本文旨在帮助大家少走一些弯路,并不提供实际的解决方案及相关的源码下载。
分享到:
相关推荐
视频处理,如何截图、如何转码、如何搭建ffmpeg+mencoder环境。个人整理,完整实用
ffmpeg+mencoder两种视频转换成flv的文件 mencoder转化的好 较占资源 等好用 还有个web中嵌入的播放flv的播放器
ffmpeg和mencoder几乎能转所有格式的音频。这里上传的是.exe文件,在windows环境下,能直接通过命令行来调用的。
windows环境下java后台直接利用ffmpeg+mencoder实现视频转码,内附ffmpeg、windows版本mencoder工具+实现类+几种格式测试小视频+测试类。
提供ffmpeg和mencoder程序,可将常见视频格式(包括rm和rmvb)转换为FLV视频格式。
ffmpeg针对rm,rmvb,wmv9格式视频无法转码,针对这些格式必须使用mencoder对其进行解码,在该压缩文件中以完美实现针对视频将其压缩转码成h264视频编码,AAC音频编码的MP4视频文件,这种格式的视频在Iphone和安卓手机...
Qt+FFMPEG+SDL实现的视频播放器 包含源代码和可执行程序
NULL 博文链接:https://lhutil.iteye.com/blog/1102691
qt使用FFmPeg+SDL2.0+QOpenGLWidget实现的视频播放器,FFmPeg+SDL2.0解码音视频,视频图像解码为YUV420的格式,然后使用QOpenGLWidget进行显示。亲测在windows和Linux下都可使用,附带FFmPeg+SDL2.0第三方库
摸索很久实现了上传视频及播放,rmvb格式的经过mencoder解码成avi,再有ffmpeg解码成avi用ckplayer也播放成功了,我网上下载了很多工具,入坑不少,我把成功的工具分享以免大家少走弯路
ffmpeg +SDL 视频播放实例(目前只能显示视频,没有声音)
ffmpeg+nginx-rtmp-module+flv监控展示全量资源,包含ffmpeg、编译后的nginx-rtmp-module、flv.min.js、前端展示代码,内含操作文档
mencoder视频格式转换+ffmpeg视频截图DEMO 可将任意格式视频转换为flv格式再截取一张图片
内有ffmpeg和mencoder,用来进行视频转码的工具,java使用的时候直接调用里面的就可以。
基于FFMPEG和MENCODER的视频转换PHP网页.pdf
c#.net 利用ffmpeg+aplayer实现视频播放,视频转码。需要视频播放控件的可以下载看一下。比VLC视频播放控件更小巧。
ffmpeg和mencoder的总结希望对大家有所帮助
基于FFMPEG+SDL2写的播放mp3文件程序,采用链表队列的方式来传递数据,详细解释见博文《基于FFMPEG+SDL2播放音频》,链接:https://blog.csdn.net/u011003120/article/details/81950045
最新版FFMPEG,支持水印命令,可将多种常见格式视频文件转换为FLV或者其他格式,最新版mencoder,支持将rm,RMVB,WMV转换为AVI,flv或者其他多种格式。亲测通过。
FFMPEG工程浩大,可以参考的书籍又不是很多,...但是几乎包含了使用FFMPEG播放一个视频所有必备的API,并且使用SDL显示解码出来的视频。十分适合新手学习FFmpeg。 使用了2014.5.6编译的类库,支持最新的HEVC以及VP9.