随着自媒体人越来越多, 所以视频操作软件也相应多了许多, 但与其安装那些臃肿的所谓的万能转换和转码软件, 不如使用它们基于源码的ffmpeg和mencoder, 很多所谓的万能格式转换软件和播放器, 都是基于这两个源码开发的.
给大家录个教程, 演示万能解码软件mencoder和ffmpeg在Linux和Windows下的使用, 这两货都是Mplayer开发的.都是开源的. Linux下的一编译安装mplayer就自带mencoder, ffmpeg要另外编译. Windows下请到我的博客原文下载这个,解压到D盘, mencoder Linux和Windows下的命令是一样的.
更多详细内容和高清视频请移步我的博客原文: http://www.myzhenai.com.cn/post/2689.html
我们今天只演示mencoder, ffmpeg我前些时候录过一个视频教程了, 在我的头条号. 龙华仙岛
Linux和Windows下ffmpeg的使用教程
视频加载中...
Windows下请将我网盘里的文件下载到本地,解压密码双击压缩包就可以看到, 解压后将最底的那个mencoder目录剪切到D盘, 就用 D:\mencoder\mencode.exe 命令 来操作 在我Linux下的这些命令, 去除前边的mencoder 加上刚才的那段 D:\mencoder\mencode.exe 就可以了.
mencoder 是一款命令行方式的视频处理软件,是Mplayer自带的编码工具(Mplayer是Linux下的播放器,开源,支持几乎所有视频格式的播放,有windows和Mac版本)。在linux下,安装完Mplayer后,就有mencoder,无需另外安装。
mencoder支持几乎所有的格式的视频转换,可以将任意格式转换到任意格式,转换功能可以说是相当强大。市面上流行的格式转换器,都是基于mencoder开发的GUI,比如暴风转码,格式工厂等。可以说转换器能办到的,mencoder都能办到,但mencoder能办到的,转换器就不一定能办到了。
很多初学者宁可去用转换器,也不用mencoder的很大原因是mencoder只支持在命令行下操作,令很多初学都无所适从,不知如何开始.这也是mencoder不能流行开来的原因.
我写了条主流的转换命令. 一些基本上的操作是可以完成的了. 可以参考我的命令进行修改. 我的视频是在Linux下进行操作的.
视频转换
mencoder input.avi -o output.mp4 -oac mp3lame -lameopts cbr:br=32 -ovc x264 -x264encopts bitrate=440 -vf scale=448:-3
mencoder JUC538.avi -oac mp3lame -ovc x264 -o JUC538.mp4
mencoder VID_20130629_173130.3gp -o VID_20130629_173130.avi -vf scale=640:480 -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500
mencoder 0AVICWP-57_clipa.mp4 -o 0AVICWP-57_clip.mp4 -vf scale=320:240 -ofps 5 -oac mp3lame -lameopts aq=7:cbr:br=96 -srate 32000 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vqscale=5 ---压缩率大的压缩代码
mencoder -oac mp3lame -lameopts mode=0:cbr:br=24:vol=8 -ovc xvid -xvidencopts fixed_quant=11 -lavcopts vcodec=mpeg4:vhq:vbitrate=112 -vf rotate=1 VID_20130914_122253.3gp -o VID_20130914_122253.mp4
mencoder input.avi -o output.flv -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3
input.avi 是指输入的视频,也就是你要转换的视频。
-o output.avi 中的“-o”是指你要输出视频,输出的视频名为output.avi。
-oac 设置音频编码器。
mp3lame 设置音频编码器为mp3lame,也是就mp3。也可以输入aac 即使用aac音频编码
-lameopts 设置mp3lamer的相关参数。
cbr:br=32 设置音频的码率为32。
-ovc 设置视频编码器。
x264 设置视频编码器为x264。
-x264encopts 设置x264的参数。
bitrate=440 设置x264的视频的码率为440。
-vf scale=448:-3 设置视频的宽为448,高为-3,-3的意思就是让mencoder来设置最佳高度。也可以设置为scale=640:480
视频转换演示
mencoder 01.mpg -o 01.mp4 -of lavf -vf lavcdeint -oac mp3lame -ovc x264 -x264encopts bitrate=440 -vf scale=648:460
mencoder 01.mpg -o 01.mp4 -oac mp3lame -ovc x264 -x264encopts bitrate=440 -vf scale=648:460
-of 指定输出文件封装方式,
lavf表示输出文件封装方式由输出文件名决定
-vf lavcdeint 参数用于去除视频中的拉丝条纹
01.mpg 是转换前的文件
01.mp4 是转换后的文件
-oac 指定音频编码
mp3lame mp3的编码器
-ovc 指定视频编码
x264 mp4的编码器
-x264encopts bitrate=440 设置x264的参数,设置x264的视频的码率为440。
-vf scale=648:460 设置视频宽度和高度 648是宽度, 460是高度, 这也可以压缩视频, 如果不想压缩, 可以不加这一段.
图片合并成视频
mencoder mf://*.webp -mf fps=1:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -audiofile aduio.mp3 -mc 0 -o file.avi
mencoder mf://*.JPG -mf fps=1:type=JPG -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -oac mp3lame -audiofile aduio.mp3 -mc 0 -o jpgR.mp4
mencoder mf://*.JPG -mf fps=1:type=JPG -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -o jpgR.mp4
mf://*.webp 是指当前目录下要合并的图片后缀名
-mf 内置参数
fps=1 是帧数,
type=jpg 要合并的图片的后缀名
-ovc 指定视频编码器
lavc 使用libavcodec中的一个视频编码器
-lavcopts 内置参数
vcodec=mpeg4 指定视频编码器
-oac 指定音频编码器
copy 复制原音频编码器和音频流
-o 输出文件
-ovc x264 指定视频编码器为x264,即mp4编码
-x264encopts 设置x264的参数。
bitrate=440 设置x264的视频的码率为440。
-vf scale=640:480 设置视频的宽度为640,高度为480
-audiofile aduio.mp3 输入一个音频文件
-mc 0 设置音视频同步,增这个参数可防止音频和视频出现不同步现象
图片合并成视频演示
mencoder mf://*.JPG -mf fps=1:type=JPG -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -oac mp3lame -audiofile /home/RucLinux/mp3/zhen.mp3 -mc 0 -o /home/RucLinux/jpgR.mp4
mencoder mf://*.JPG -mf fps=1:type=JPG -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -o /home/RucLinux/jpgR.mp4
mencoder jpgR.mp4 -audiofile /home/RucLinux/mp3/zhen.mp3 -o yijia.mp4 -oac mp3lame -ovc x264 -x264encopts bitrate=440 -vf scale=648:460
mf://*.webp 是指当前目录下要合并的图片后缀名
-mf 内置参数
fps=1 是帧数,
type=jpg 要合并的图片的后缀名
-ovc 指定视频编码器
lavc 使用libavcodec中的一个视频编码器
-lavcopts 内置参数
vcodec=mpeg4 指定视频编码器
-oac 指定音频编码器
copy 复制原音频编码器和音频流
-o 输出文件
-ovc x264 指定视频编码器为x264,即mp4编码
-x264encopts 设置x264的参数。
bitrate=440 设置x264的视频的码率为440。
-vf scale=640:480 设置视频的宽度为640,高度为480
-audiofile aduio.mp3 输入一个音频文件
-mc 0 设置音视频同步,增这个参数可防止音频和视频出现不同步现象
fps=1 一秒帧数
视频翻转
mencoder -oac mp3lame -lameopts vol=10 -ovc lavc -vf rotate=1 VID_20130807_094228.3gp -o VID_20130807_094228.avi
mencoder -oac mp3lame -lameopts vol=10 -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 rotate=1 VID_20130807_094228.3gp -o VID_20130807_094228.mp4
-oac 指定音频编码器
mp3lame mp3的编码器
-lameopts 指定mp3编码器的参数
vol=10 音量放大
rotate=1 翻转方向,应该是顺时针的, 1为90度右转, 2为180度右转.....
视频翻转演示
mencoder -oac mp3lame -lameopts vol=10 -ovc lavc -vf rotate=1 01.mp4 -o yunnan.mp4
-oac 指定音频编码器
mp3lame mp3的编码器
-lameopts 指定mp3编码器的参数
vol=10 音量放大
rotate=1 翻转方向,应该是顺时针的, 1为90度右转, 2为180度右转.....
截取视频
mencoder -ss 开始时间 -oac copy -ovc copy -endpos 截取时间长 文件名 -o 目标文件名
mencoder -ss 开始时间 -oac aac -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -mc 0 -endpos 截取时间长 文件名 -o 目标文件名
-ss 设置转换开始时间,如:-ss 15 代表从视频的15秒开始截取
-oac 指定音频编码器
copy 复制,不作改变
aac 指定音频编码器为aac
-ovc 指定视频编码器
x264 mp4编码器
-x264encopts 指定x264参数
bitrate=440 设置视频码率为440
-vf scale=640:480 设置视频的宽度为640,高度为480
-mc 0 设置音视频同步,增这个参数可防止音频和视频出现不同步现象
-endpos 设置转换结束时间,如:-endpos 60 在视频的60秒处结束
-o 输出选项
截取视频演示
mencoder -ss 00:00 -oac mp3lame -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -mc 0 -endpos 00:46 01.mpg -o 01.mp4
-ss 设置转换开始时间,如:-ss 15 代表从视频的15秒开始截取
-oac 指定音频编码器
copy 复制,不作改变
aac 指定音频编码器为aac
-ovc 指定视频编码器
x264 mp4编码器
-x264encopts 指定x264参数
bitrate=440 设置视频码率为440
-vf scale=640:480 设置视频的宽度为640,高度为480
-mc 0 设置音视频同步,增这个参数可防止音频和视频出现不同步现象
-endpos 设置转换结束时间,如:-endpos 60 在视频的60秒处结束
-o 输出选项
提取音频
mencoder -oac mp3lame -ovc copy -of rawaudio 视频文件 -o 音频文件
-of rawaudio 原始音频流
提取音频演示
mencoder -oac mp3lame -ovc copy -of rawaudio 01.mp4 -o 01.mp3
-of rawaudio 原始音频流
-ovc copy 这个是复制视频, 但这里并没有复制视频, 因为-of rawaudio这个参数, 视频被放弃了.
提取视频
mencoder -oac copy -ovc x264 -of rawvideo 视频文件 -o 输出的视频文件
提取视频演示
mencoder -oac copy -ovc x264 -of rawvideo yunnan.mp4 -o 02.mp4
这个和上面那个类似, 但这个的音频被丢弃了. 没声音的. -of rawvideo 这个只用视频流
合并视频
mencoder -ovc copy -oac copy VID_20140131_084343.avi VID_20140131_100314.avi -o JiaXiang.avi
mencoder VID_20140131_084343.avi VID_20140131_100314.avi -oac pcm -ovc copy -o JiaXiang.avi
mencoder -ovc copy -oac copy 004.mp4 005.mp4 -o 01.mp4
mencoder -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -oac aac -mc 0 iutp.avi toutp.3gp -o updtp.mp4
aac 指定音频编码器为aac
-ovc 指定视频编码器
x264 mp4编码器
-x264encopts 指定x264参数
bitrate=440 设置视频码率为440
-vf scale=640:480 设置视频的宽度为640,高度为480
-mc 0 设置音视频同步,增这个参数可防止音频和视频出现不同步现象
iutp.avi 第一个文件
toutp.3gp 第二个文件
-o updtp.mp4 输出合并后的文件
合并视频演示
mencoder -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -oac mp3lame -mc 0 02.3gp 03.3gp -o updtp.mp4
mencoder 02.3gp 03.3gp -o updtp.mp4 -of lavf -vf lavcdeint -vf scale=640:480 -oac mp3lame
mp3lame mp3编码器
aac 指定音频编码器为aac
-ovc 指定视频编码器
x264 mp4编码器
-x264encopts 指定x264参数
bitrate=440 设置视频码率为440
-vf scale=640:480 设置视频的宽度为640,高度为480
-mc 0 设置音视频同步,增这个参数可防止音频和视频出现不同步现象
02.3gp 第一个文件
03.3gp 第二个文件
-o updtp.mp4 输出合并后的文件
[RucLinux@localhost ~]$ mencoder -oac help
MEncoder 1.3.0-4.4.7 (C) 2000-2016 MPlayer Team
Available codecs:
copy - frame copy, without re-encoding (useful for AC3)
pcm - uncompressed PCM audio
mp3lame - cbr/abr/vbr MP3 using libmp3lame
lavc - FFmpeg audio encoder (MP2, AC3, ...)
twolame - Twolame MP2 audio encoder
faac - FAAC AAC audio encoder
[RucLinux@localhost ~]$ mencoder -of help
MEncoder 1.3.0-4.4.7 (C) 2000-2016 MPlayer Team
Available output formats:
avi - Microsoft Audio/Video Interleaved
mpeg - MPEG-1/2 system stream format
lavf - FFmpeg libavformat muxers
rawvideo - (video only, one stream only) raw stream, no muxing
rawaudio - (audio only, one stream only) raw stream, no muxing
[RucLinux@localhost ~]$ mencoder -ovc help
MEncoder 1.3.0-4.4.7 (C) 2000-2016 MPlayer Team
Available codecs:
copy - frame copy, without re-encoding. Doesn't work with filters.
frameno - special audio-only file for 3-pass encoding, see DOCS.
raw - uncompressed video. Use fourcc option to set format explicitly.
nuv - nuppel video
lavc - libavcodec codecs - best quality!
vfw - VfW DLLs, read DOCS/HTML/en/encoding-guide.html.
qtvideo - QuickTime DLLs, currently only SVQ1/3 are supported.
xvid - XviD encoding
x264 - H.264 encoding