MP4视频编码器
用 HTML5 播放视频,最流行的视频格式非 MP4莫属, 所有最新浏览器都支持;
MP4 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件;
以前做过一个把其它编码格式的视频转成 MP4的程序,转换的质量可以进行控制,质量越差,视频就越小,所以可以把几G的视频可转成 几十M的MP4,方便放到网上用 HTML5 观看。
该程序只是简单包装了对开源编码器的调用过程,具体用到下面的编码器和类库:
x264 => 视频编码器
faac => 音频编码器
MP4Box => 把视频和音频混合为一体
AvisynthWrapper.dll => AVI 脚本的解释器(需要安装 Avisynth 程序)
上面的编码器只支持部分视频格式,如wmv,flv; 不支持的视频要用到 ffmpeg 编码器,它支持大部分视频格式,如rm,rmvb,mp4;
把它们结合起来就能编码绝大部分的视频格式了;
详细的作用和相关的参数,在网上一大堆,这里不再赘述;(真是佩服有些外囯人那种大公无私的贡献精神,如此复杂实用的程序都开源出来,供全人类使用,据说国内某某风暴,扣扣影音都用了很多开源的视频编码器,自己却又不开源,鄙视之)
程序已开源到GitHub: https://github.com/Dhenskr/MP4Encoder.git
源码解决方案的目录:

编译时注意把 MP4EncoderTester 项目的目标平台改成 x86, 否则在调用 AvisynthWrapper.dll 类库的方法时会出现平台错误;

在运行程序的目录下(MP4EncoderTester项目的 bin/Debug/ 目录已包含有下面的几个文件,也可以上相关的官网下载)要包括下面框中的文件,
Avisynth_258.exe 需要先安装,用来解释 avs 脚本文件进行视频处理;

测试时注意: MP4EncoderTester 项目 Program.cs 文件的 Main 方法, input 和 output变量改为自己系统下面相应的视频路径:
static void Main(string[] args) {
string input = @"C:\Users\Canie\Desktop\testVideo\orig\orig.wmv";
string output = @"C:\Users\Canie\Desktop\testVideo\encoded\encoded.mp4";
EncoderHelper encoderHelper = new EncoderHelper(input, output);
encoderHelper.Encode();
}
程序参考了强大的视频编码器:MeGUI
如果想学习视频编码建议直接看 MeGUI的源码,而我的这个程序只是为了放在后台对指定文件夹的视频进行自动定时转换,所以没做界面,功能也比较单一,单纯编码成 MP4格式;
源码缺少详细的文档说明,有心情再慢慢完善;
MP4视频编码器的更多相关文章
- R 语言爬虫 之 cnblog博文爬取
Cnbolg Crawl a). 加载用到的R包 ##library packages needed in this case library(proto) library(gsubfn) ## Wa ...
- CentOS6下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
1.先添加几个RPM下载源 1.1)安装RPMforge的CentOS6源 [root@AY130611215205Z ~]# wget -c http://pkgs.repoforge.or ...
- Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...
- CentOS6下基于Nginx搭建mp4/flv流媒体服务器
CentOS6下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 1.先添加几个RPM下载源 1.1)安装RPMforge的CentOS6源 [roo ...
- FFMPEG SDK流媒体开发2---分离.mp4等输入流音视频而且进行解码输出
对于FFMPEG SDK 提供的Demuxing 为我们实现多路复用 提供了非常多方便,以下的案案例 实现的是 分离一个媒体文件的音频 视频流 而且解码输出 到 不同的文件里. 对于音频被还原回 ...
- 工具---《.264视频 转成 MP4视频》
<.264视频 转成 MP4视频> 安装了“爱奇艺万能播放器”可以打开.264视频,但是opencv却不能直接读取.264视频,还是需要想办法“.264视频 转成 MP4/avi视频”. ...
- 编译ffmpeg(第一次),实现JPG转MP4
ffpmeg网址:http://ffmpeg.org/ ffmpegapi文档:http://ffmpeg.org/doxygen/trunk/index.html 因为这是JPG转MP4,所以不涉及 ...
- IIS配置MP3/MP4/OGG/flv等资源文件访问
配置过程参考:http://www.cnblogs.com/EasonJim/p/4752399.html 以下包含了mp4的mime类型: 323 text/h323 acx application ...
- video.js播放mp4文件
HTML5的标签 video 支持的mp4编码为视频编码 H.264 音频AAC 参考网址 http://www.w3school.com.cn/html5/html_5_video.asp 视频格式 ...
随机推荐
- Python 2.7.3的文件编码问题,print在控制台下面中文乱码问题,以及推荐做法
情况:文件乱码,在cmd上输出print也乱码.解决方案:统一为gbk的简体中文编码方式.步骤如下: 1.每个py文件使用[简体中文(GB2312)- 代码页 936]格式保存,行尾为[Windows ...
- WEB开发中常用的正则表达式集合
在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符 ...
- Android在WebView上构建Web应用程序
原文链接:http://developer.android.com/guide/webapps/webview.html reference:http://developer.android.com/ ...
- JQuery -> 超级简单的下拉菜单
使用jquery实现一个超级简单的下拉菜单. 效果图 最初的效果 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRmVlTGFuZw==/font/5a6L ...
- SSMS2008插件开发(4)--自定义菜单
原文:SSMS2008插件开发(4)--自定义菜单 打开上次的项目MySSMSAddin中的Connect类,发现该类继于了两个接口:IDTExtensibility2和IDTCommandTarge ...
- J2EE总结(2)——Servlet/JSP
Servlet/JSP Servlet定义:部署在java的Webserver上的组件.整个java服务端程序都构建在Servlet之上,以多线程方式提 供服务,具有效率高.可扩展,可移植的特点. J ...
- .NET MVC4 实训记录之七(实现资源的自主访问后续)
我们在上一篇中讨论了如何利用ModelMetadata实现国际化资源文件访问,但也留下了一些问题,即:如何利用ModelMetadata实现相同类型的属性信息的个性化资源显示.本人没有找到合适的方案, ...
- Date与SimpleDateFormat
Date常用的方法 返回类型 方法名称 备注 Date New Date() 创建当前日期对象 Date New date(long dt) 使用自1970.1.1以后的指定毫秒数创建日期 boole ...
- ASP.NET MVC 5项目
图文详解远程部署ASP.NET MVC 5项目 话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专 ...
- 【推荐】推荐一本学习ExtJS4的好书《ExtJS江湖》(含pdf电子书和源代码下载地址)
最近在网上游逛,突然发现了一本介绍ExtJS 4框架的好书,书名叫<ExtJS江湖>,作者是大漠穷秋,个人感觉非常不错,书写得很幽默,很具有可读性,在此推荐给各位. 以下是这本书的介绍: ...