视频转换

每次用都要上网搜,在这里记一下

参见www.cicw.org/cms/html/28/t-2028.html

mencoder


制作适合在智能手机和PDA上观看的mpeg4视频。
Linux上有一个很强大的视频音频转换软件,就是Mplayer自带的mencoder (MPlayer's Movie Encoder)。mencoder就象是一台全手动的照相机,可调整的选项非常多,不过这儿只是把最常见的情况说一下。

转换avi文件,并把字幕内嵌到视频中。首先假设一下下列的条件:
文件名:video.avi
字幕文件名:video.srt
目标文件:new.avi
目标文件格式:mpeg4
目标文件视频码率:200
目标文件音频码率:64
目标文件分辨率: 320:240
制作内嵌字幕所需的字体:simsun.ttf
(上面各项都可以根据实际情况进行调整)
转换命令如下:

mencoder -oac mp3lame -lameopts vbr=3:br=64 -ovc lavc -lavcopts vcodec=mpeg4:mbd=1:vbitrate=200 -sub video.srt -o new.avi -font simsun.ttf video.avi -subcp cp936 -subfont-text-scale 4 -vf scale=320:240


各选项的含义:
-oac 编码文件的音频部分。这儿是用lame将音频encode成mp3,即mp3lame。其他可用的选项可以调用mencoder的man page查看。
-lameopts 顾名思义,即lame选项,这儿只需定义一下码率就可以了。
vbr 设定音频码率的方法,格式为vbr=<0-4>

0 cbr average bitrate
1 mt
2 rh   constant bitrate Also forces CBR mode encoding on subsequent ABR presets modes.
3 abr
4 mtrh

在这儿用的是3,abr。
br 就是设定我们所需要的码率值,格式为br=<0-1024>,只能在vbr为0和3的情况下才能使用该选项。
-ovc 编码文件的视频部分。主要有以下几个选项

-ovc copy
      不进行编码,只是复制视频流
-ovc divx4
      编码成DivX4/DivX5
-ovc raw
                        编码成任意不压缩的格式(用‘-vf format’设定具体的格式)
-ovc lavc
      使用libavcodec进行编码

-lavcopts 就是libavcodec的选项。
vcodec=使用指定的视频编码,下面列一下几个主要的值

h264
  H.264
h263
  H.263
h263p
  H.263+
mpeg4
  MPEG-4 (DivX 4/5)
msmpeg4
  DivX 3
msmpeg4v2
  MS MPEG4v2
wmv1
  Windows Media Video, version 1 (又称 WMV7)
wmv2
  Windows Media Video, version 2 (又称 WMV8)
rv10
  旧的RealVideo格式
mpeg1video
  MPEG-1 video
mpeg2video
  MPEG-2 video

mbd 决定视频宏块的算法,这儿只需要mbd=1即可。其余的可以查看man page。
vbitrate 设定视频的码率(默认为800)。
-sub 设定字幕文件
-o 目标视频文件
-font 制作内嵌字幕所需字体的路径
-subcp 字幕的编码,简体中文就是cp936
-subfont-text-scale 字幕字体的大小
-vf scale 视频的分辨率
如果不需要将字幕内嵌入视频文件,只需要去掉-sub、-font、-subcp、-subfont-text-scale这几个选项。将rmvb转换成mpeg4也是如此。

对于16:9比例的宽频视频文件,按照上面的方法转换会把人挤扁,可以通过加黑边的方式解决,
就是在转换好的视频上下加上黑边,补足4:3(320:240)这样需要将最开始的参数中的-vf-add scale=320:240改为-vf-add scale=320:-3,expand=:240:::1,意思就是宽度保持不变,高度用黑边补足


ffmpeg


格式:ffmpeg [[输入文件选项]- i 输入文件名] {[输入文件选项] 输出文件名}
主要选项:
-L             显示ffmpeg的版权说明
-h             显示帮助
-version         显示版本
-formats         显示支持的文件格式,编码和协议
-f 格式名                     强制使用格式
-img 文件格式名             强制使用片格式
-i 文件名                     待转换文件名字
-y             覆盖同名输出文件
-t 时间                         设置影片时间长度
-fs 最大尺寸                 设置文件的最大尺寸
-ss 时间点     设置开始转换的时间点
-title 文字     设置标题
-author 文字   设置作者
-copyright 文字   设置版权声明
-comment 文字   设置备注

视频选项:
-b 比特率       设置文件比特率 (单位是kbit/s)
-r 速度         桢速度 (Hz value)
-s 大小         设置大小,宽乘高
-newvideo       在现在的视频流后面加入信的视频流

Audio options:
-aframes 数字     设置转换多少桢(frame)的音频
-ab bitrate       设置音乐的比特率(单位:kbit/s)
-aq 质量       这只音频质量 (指定编码)
-ar 采样率         设置音频采样率 (单位:Hz)
-ac 声道数字     设置声道数
-an           取消音频
-acodec 编码     强制音频 编码 ('copy' to copy stream)
-vol volume       改变音量 (256为普通)
-newaudio       追加音乐