视频的转码需要满足以下二个条件
1:视频必需是h.264格式的
2:视频的元数据信息必需是放在视频的第一帧上。
H.264准确的说是一种编码格式或者说是一种编码标准
H264标准的主要特点如下:
1.更高的编码效率:同H.263等标准的特率效率相比,能够平均节省大于50%的码率。
2.高质量的视频画面:H.264能够在低码率情况下提供高质量的视频图像,在较低带宽上提供高质量的图像传输是H.264的应用亮点。
3.提高网络适应能力:H.264可以工作在实时通信应用(如视频会议)低延时模式下,也可以工作在没有延时的视频存储或视频流服务器中。
4.采用混合编码结构:同H.263相同,H.264也使用采用DCT变换编码加DPCM的差分编码的混合编码结构,还增加了如多模式运动估计、帧内预测、多帧预测、基于内容的变长编码、4x4二维整数变换等新的编码方式,提高了编码效率。
5.H.264的编码选项较少:在H.263中编码时往往需要设置相当多选项,增加了编码的难度,而H.264做到了力求简洁的“回归基本”,降低了编码时复杂度。
6.H.264可以应用在不同场合:H.264可以根据不同的环境使用不同的传输和播放速率,并且提供了丰富的错误处理工具,可以很好的控制或消除丢包和误码。
7.错误恢复功能:H.264提供了解决网络传输包丢失的问题的工具,适用于在高误码率传输的无线网络中传输视频数据。
8.较高的复杂度:264性能的改进是以增加复杂性为代价而获得的。据估计,H.264编码的计算复杂度大约相当于H.263的3倍,解码复杂度大约相当于H.263的2倍。
视频的元数据说明
视频文件的元数据是保存在视频文件里的,它记录着视频的情况,正确的元数据信息至少需要包括以下几个对播放器来说比较重要的信息:
1、视频的宽
2、视频的高
3、视频的总时间,单位是秒,精确到小数点后三位,其实就是毫秒
4、视频的总字节
播放器只有读取到这四个信息才能正确的播放视频,当然元数据里还包括其它的一些信息如帧率之类的。这些只有在对视频进行高级处理时使用。
如果视频需要支持随意拖动时,元数据里还需要有关键帧和关键时间点的信息。
给flv文件添加关键帧,yamdi软件的使用介绍
mp4文件添加关键帧,基于windows系统安装FFMPEG转码技术
普通的转换视频工具推荐
yamdi官方下载地址
http://yamdi.sourceforge.net打不开的话就自行到别的网站找一个下载吧,或者加入ckplayer群,群共享里也有下载
下解下来解压得到一个单独的文件
yamdi.exe第一步,把这个文件保存在一个安全的空间很大的地方(因为这地方要放视频文件,所以要有足够的空间)
第二步,运行这个文件,运行是看到一个黑框闪一下就关了,这就可以了
第三步,找一个flv文件放在和yamdi.exe同目录下
第四步,在运行里输入cmd然后回车
第五步,执行下面命令就能成功的把1.flv加上关键帧,生成一个新的2.flv,新的flv就是包含关键帧的了
下载地址:
本篇教程和安装文件由网友红土地提供,在此表示感谢,如果你有好的教程,欢迎发到论坛或发到群里共享
软件特点:
1、被转视频基本不失真(支持超清、高清、标清);
2、转码速度比较现成转码软件快非常多(不管文件有多大,此软件是按时间长度来计算的)
3、支持任何格式视频互转;
4、转码参数可按自己网站的要求设定;
5、可集成到自己网站系统里;
第一步:安装软件
1 、安装 mingw
执行软件文件夹里面的:mingw-get-inst-20120426.exe,
选择安装路径:C:MinGW(可以安装到任何路径,不会有任何影响,我以C盘为例)
在“SelectComponents”步骤中选择:
√ C Compiler (默认且一定选择)
√ C++ Compiler
√ MSYS BasicSystem(选择此项将会安装msys,msys则不需要另外安装)
√ MinGW Developer ToolKit
等待安装完成!(需要等待一定的时间,因为安装过程需要下载文件,可想而知,网速越快,安装越快,注意安装过程千万别把命令框关闭,如果关闭就不成功了,安装时间看情况,我试过三台机器,有两台很快,差不多10分钟左右,服务器上装了一晚上,不知道什么原因,估计跟官网有关系,如果想使用请耐心等待,决对能成功的)
安装完成后,在C:MinGW目录下可以看到 msys 文件夹,msys也已经安装。(说明安装成功)
2、试运行;
打开你安装的mingw所在的文件夹,如:C:MinGWmsys1.0
里面会有个:msys.bat
双击会自动弹出命令编辑器,如下图:
(第一次运行,系统会为你计算机生成一个home文件夹,不过好像没什么用,我直用来编译了一下X264的插件,不过你们可以用我生成好的,现成的,省得麻烦!)
3、把软件文件夹里的pthreadGC2.dll复制 如下目录
你可以把“pthreadGC2.dll”直接拷贝到当前目录(C:MinGWmsys1.0in下,你安装到那个盘,就到那里找),也可放到系统目录C:WINDOWSsystem32中(我是放在system32里的,不放心的话,就两个地方各复制一份)
pthreadgc2.dll是功能强大的处理数字化影视作品编辑软件premiere6运行所需的一个DLL文件。这是一个无威胁文件。属于OpenSource Software community project的文件。
4、系统整合
使用记事本修改C:MinGWmsys1.0etc目下的fstab文件,如果不存在fstab,请复制一份fstab.sample,然后改名为:fstab,再修改其内容为:C:/MinGW/mingw,也即为MinGW的安装路径。
5、配置 yasm
为了减少配置环境变量的麻烦,本处直接把软件文件夹里的yasm.exe并放到系统目录下:C:/WINDOWS/system32里面就可以了。
6、重点:FFmpeg安装
在软件文件夹里有个ffmpeg文件夹,把里面的内容复制到C:MinGWmsys1.0对应的文件夹里面(根据你安装的路径)如:ffmpegin里有3个文件:ffmpeg.exe、ffplay.exe、ffprobe.exe
复制到C:MinGWmsys1.0in里面(完成后,你就成功安装好了FFMPEG了)
7、测试一下效果:
打开C:MinGWmsys1.0 msys.bat粘贴下面代码到命令框(注意视频文件必须存在,方可成功运行,找一个来试试吧),
截取一张720X576尺寸大小的,格式为jpg的图片
ffmpeg -i d:/a.mpg -y -f image2 -t 0.001 -s720x576 f:/a.jpg
这样就成功了!去找一下所截的图吧^_^
8、安装x.264高清转码软件,这样转出来的MP4才会清楚不然转出来的视频会很糊。
把软件文件里的libx264-129.dll和x264.exe复制到C:MinGWmsys1.0in里面(高清转码搞定了)
9、安装qt-faststart.exe
把软件文件夹里的qt-faststart.exe移动到C:MinGWmsys1.0in里面,即可
(此程序可使MP4的meta信息移动到头部,让你网站支持边下载边播放。可以选择不装,如果网站上播放的视频最好要装,不然谁会等你视频下载完再看^_^)
10、测试高清转码,命令如下:
ffmpeg.exe -threads 4 -i d:/1.mpg -ab 32 -ar 22050 -vcodec libx264-qscale 6 -r 25 -s 480x360 -flags +loop -crf 24 -bt 256k -vol 200-vf yadif d:/2.mp4
处理MP4命令:
qt-faststart.exe d:/2.mp4d:/3.mp4(3.mp4.mp4就是被处理过的MP4,转到网站上去试播下,决对可以边下载边播放)
(以上命令可以嵌入到网页或其它软件程序里,看自己情况而定,我是用ASP编辑程的,简单说一下调用,主要看你的编辑思路,以下是决对路径,原理就是这样)
ASP版调用:
ffm=” C:MinGWmsys1.0inffmpeg.exe”
qts=” C:MinGWmsys1.0in qt-faststart.exe”
video=”d:/1.mpg”
mp4vidoe=”d:/mp4/1.mp4”
Set WshShell = server.CreateObject("Wscript.Shell")
strk=ffm&" -threads 4 -i "& video &" -ab 32 -ar 22050-vcodec libx264 -qscale 6 -r 25 -s 480x360 -flags +loop -crf 24 -bt256k -vol 200 -vf yadif "& mp4vidoe
isffmpeg1=WshShell.Run(strk,1,true)
if isffmpeg1<>0 then
response.write “转码失败”
else
‘进行MP4第二步处理,处理头部信息
Set WshShell2 = server.CreateObject("Wscript.Shell")
strk2=qts&” ”& mp4vidoe &" "d:/4.mp4"‘d:/4.mp4是被处理后的视频文件
isffmpeg2=WshShell2.Run(strk2,1,true)
set WshShell2=nothing
if isffmpeg2<>0 then
response.write “处理失败”
else
response.write “处理成功”
end if
end if
重点:(-qscale 6,4的质量比6高)这个一定要设,不然转出来的视频天差地别
里面的参数看你的实际情况调
参数:
-y(覆盖输出文件,即如果1.***文件已经存在的话,不经提示就覆盖掉了)
-i "1.avi"(输入文件是和ffmpeg在同一目录下的1.avi文件,可以自己加路径,改名字)
-title "Test"(在PSP中显示的影片的标题)
-vcodec xvid(使用XVID编码压缩视频,不能改的)
-s 368x208(输出的分辨率为368x208,注意片源一定要是16:9的不然会变形)
-r 29.97(帧数,一般就用这个吧)
-b 1500(视频数据流量,用-b xxxx的指令则使用固定码率,数字随便改,1500以上没效果;还可以用动态码率如:-qscale4和-qscale 6,4的质量比6高)
-acodec aac(音频编码用AAC)
-ac 2(声道数1或2)
-ar 24000(声音的采样频率,24000Hz)
-ab 128(音频数据流量,一般选择32、64、96、128)
-vol 200(200%的音量,自己改)
网上关于视频转换的工具很多,目前国内常用的是:狸窝超级全能视频转换器,格式工厂。
狸窝超级全能视频转换器:http://www.leawo.cn/
格式工厂:http://www.pcfreetime.com/CN/
另外还有一些转换工具推荐
adobe的:Adobe Media Encoder
如果你有好的转换工具欢迎在论坛交流