音视频编码简介
1、用到的工具:
MPlayer(基于命令行的播放器)
mencoder(基于命令行的转码器)
Firefox(图形界面的浏览器)
2、任何影片的播放都分为3个步骤:拆包->解码->渲染 ,分别对应播放器的分离器(demuxer)->解码器(decode)->渲染器 。
(1)拆包 ,即是播放器调用分离器,将封包中的视频轨道和音频轨道正确的取出来的过程。
使用mplayer –demuxer help命令可以查看系统支持分离器。
(2)解码 ,当分离器正确的从封包中取出视频轨道和音频轨道以后,播放器识别文件编码格式,然后调用相应的解码器进行解码。
使用mplayer –vc help命令可以查看系统支持的视频解码器;
使用mplayer –ac help命令可以查看系统支持的音频解码器。
(3)渲染 ,解码器将音频视频翻译完毕,由渲染器输出的过程。可以理解为画面出来了,显示在屏幕上,声音处理好了,从喇叭出来的过程。
使用mplayer -vf help命令来查看渲染效果。
3、关于MenuCoder
(0)安装相应的解码器:sudo apt-get install ffmpeg libavcodec-extra-52
(1)安装:sudo apt-get install mencoder
(2)查看系统支持的音频、视频编码:mencoder -ovc help、mencoder -oac help。
(3)查看系统支持的封装格式:mencoder -of help
(4)压缩一段视频:mencoder m001.mpg -o m001.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint。
上面命令中的 m001.mpg 和 m001.mp4 分别是输入和输出文件名,-oac 用于指定音频编码器,-ovc 指定视频编码器, -of 指定输出文件封装方式,lavf表示输出文件封装方式由输出文件名决定(即你用m001.mp4就用mp4封装,用m001.avi的话就用avi封 装),最后 -vf lavcdeint 参数用于去除视频中的拉丝条纹(锯齿纹),如果没有的话不要这个参数也可以。
(5)批量转换脚本:
#!/bin/bash
find . -type f /( -name “*.mpg” -o -name “*.mpeg” /)|while read line;do
echo $line
mencoder $line -o ${line}.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint
5、ffmpeg也可以实现上述操作。参见链接:http://www.opensoce.com/?p=1018