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 视频格式 ...
随机推荐
- Linux开源模块迁移概述暨交叉编译跨平台移植总结--从《嵌入式Linux驱动模板简洁和工程实践》
本文摘录<嵌入式Linux驱动模板简洁和工程实践>一本书"开发和调试技术". Linux强大的是,有那么多的开源项目可以使用.通常非常需要可以通过寻找相关的源模块被定义 ...
- 创建android phonegap项目
一. 首先需要在Eclipse中创建一个Android项目 打开Eclipse,打开File->New->Project 选择Android Application Project点击Ne ...
- Pythonic论坛怪怪的’居民’显示[已解决]
之前使用Pythonic搭建的论坛people界面显示有点问题 第一个用户不显示,问了下作者,作者回复说这个Link只有~/people/而没有用户名 就点到为止了. 按说我使用syncdb同步时注册 ...
- Java 之Integer相等比较
1.问题提出 今天在和同事讨论问题的时候,无意间谈到了Integer对象的比较,先看下代码: package test; public class IntegerEqual { /** * @para ...
- SQL SERVER 2005中如何获取日期(一个月的最后一日、上个月第一天、最后一天、一年的第一日等等)
原文:[转]SQL SERVER 2005中如何获取日期(一个月的最后一日.上个月第一天.最后一天.一年的第一日等等) 在网上找到的一篇文章,相当不错哦O(∩_∩)O~ //C#本周第一天 ...
- 自己编译的openwrt在开机时一直打印jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found...的错误提示
具体的输入信息是这样的. uboot> http Link down: eth0 Ethernet mode (duplex/speed): / Mbps HTTP server is star ...
- leetcode第25题--Remove Element
problem: Given an array and a value, remove all instances of that value in place and return the new ...
- CSS3教程:box-sizing属性的理解border、padding与容器宽度的关系
说到 IE 的 bug,一个臭名昭著的例子是它对于“盒模型”的错误解释:在 IE5.x 以及 Quirks 模式的 IE6/7 中,将 border 与 padding 都包含在 width 之内.这 ...
- SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)
原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...
- {{angular.js 使用技巧}} - 基于验证框架的扩展(w5cValidator)
开场白: angular.js 是谷歌出的前端js MV*框架,我也是今年做 worktile 的时候才开始接触的,起初技术选型的时候还准备使用 backbone(毕竟很多大公司在使用他,而且也是比较 ...