万能格式转换工具mencoder和ffmpeg使用教程

2017年05月31日

原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2689.html https://www.myzhenai.com/thread-18010-1-1.html
关键词: mencoder ffmpeg Linux Windows
相关的帮助文档
https://baike.baidu.com/view/3353694.htm
https://www.mplayerhq.hu/DOCS/HTML/zh_CN/mencoder.html

Linux下使用mencoder对视频进行操作


https://www.myzhenai.com.cn/post/2587.html
Windows版本的mencoder下载链接: https://pan.baidu.com/s/1o8RYmZg 密码: bxw4
演示视频高清原版下载地址: 链接:https://pan.baidu.com/s/1mh6hxBa 密码:3ssk

随着自媒体人越来越多, 所以视频操作软件也相应多了许多, 但与其安装那些臃肿的所谓的万能转换和转码软件, 不如使用它们基于源码的ffmpeg和mencoder, 很多所谓的万能格式转换软件和播放器, 都是基于这两个源码开发的.
给大家录个教程, 演示万能解码软件mencoder和ffmpeg在Linux和Windows下的使用, 这两货都是Mplayer开发的.都是开源的. Linux下的一编译安装mplayer就自带mencoder, ffmpeg要另外编译. 链接: https://pan.baidu.com/s/1o8RYmZg 密码: bxw4 Windows下下载这个,解压到D盘, mencoder Linux和Windows下的命令是一样的.

我们今天只演示mencoder, ffmpeg我前些时候录过一个视频教程了, 在我的头条号. 龙华仙岛 https://www.toutiao.com/i6413408643470852609/

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

 
视频转换演示

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://*.jpg -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://*.jpg 是指当前目录下要合并的图片后缀名
-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://*.jpg 是指当前目录下要合并的图片后缀名
-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 输出合并后的文件

 


sicnature ---------------------------------------------------------------------
Your current IP address is: 52.90.181.205
Your IP address location: 美国弗吉尼亚阿什本
Your IP address country and region: 美国 美国
Your current browser is:
Your current system is:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source http://www.myzhenai.com.cn/post/2689.html

2条评论

  • 海南胡说 2017年06月4日在12:50 上午

    以下几条命令是截剪和转码

    mencoder -ss 12:00 -oac mp3lame -ovc x264 -x264encopts bitrate=440 -vf scale=640:480 -mc 0 -endpos 04:00 02.mp4 -o 4.mp4
    ffmpeg -i 01.mp4 -vcodec libx264 -acodec libmp3lame -ar 44100 -vf scale=640:480 a1.mp4
    ffmpeg -i 01.mp4 -i 02.mp4 -vcodec libx264 -acodec libmp3lame -ar 44100 -vf scale=640:480 ch_01.mp4

  • 海南胡说 2017年07月21日在1:00 上午

    mencoder下载链接: https://pan.baidu.com/s/1o8RYmZg 密码: bxw4
    ffmpeg下载,请留意你的系统位数, 64位或32位
    32位: http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20170422-207e6de-win32-static.zip
    64位: http://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20170422-207e6de-win64-static.zip
    然后解压缩到C盘外的任意盘符. 路径别放太深. 因为要敲命令. 然后 就用以下命令来进行操作. 我会有注释. 解压密码请双击压缩包看右边注释

    例如:
    D:\mencoder\mencoder.exe
    D:\ffmpeg\bin\ffmpeg.exe

    在使用之前, 打开cmd.exe命令行窗口, 切换到视频所在目录, 然后根据要求自行修改以下这三条命令后粘贴到cmd命令行窗口里,一回车就可以了.

    裁剪视频命令
    D:\mencoder\mencoder.exe -ss 05:15 -oac mp3lame -ovc x264 -x264encopts bitrate=440 -vf scale=1280:720 -endpos 02:01 0411.mkv -o a.mp4

    D:\mencoder\mencoder.exe 这是主程序
    -ss 这是裁剪参数
    05:15 这是起始时间, 即从这个时间开始裁剪
    -oac 指定音频编码器参数
    mp3lame 这是mp3编码器, 因为版权原因, mencoder和ffmpeg是不能直接添加mp3编码的, 这是调用lame的mp3编解码器
    -ovc 指定视频编码器参数
    x264 这个是mp4编码, 也有的地方表示为H264或libx264
    -x264encopts bitrate=440 设置x264的参数,设置x264的视频的码率为440。
    -vf scale=1280:720 指定视频像素, 也就是宽度和高度, 1280是宽度, 720是高度, 如果你要调整视频大小, 修改这两组数字就可以.
    -endpos 02:01 指定要裁剪的时间长, 比如 -endpos 02:00 那么裁剪后的视频只有2分钟, 表示格式为 00:00:00 分别是 时:分:秒
    0411.mkv 这是源文件, 即你要从这个文件里裁剪
    -o 输出参数, 即表示将裁剪后的文件输出到这个参数后边的文件名
    a.mp4 这个是裁剪后的文件.

    合并视频命令
    D:\mencoder\mencoder.exe -ovc x264 -x264encopts bitrate=440 -vf scale=1280:720 -oac mp3lame -mc 0 a.mp4 a1.mp4 -o monika1.mp4

    D:\mencoder\mencoder.exe 这个是主程序
    -ovc 指定视频编码器
    -x264encopts bitrate=440 设置x264的参数,设置x264的视频的码率为440。
    -vf scale=1280:720 指定视频像素, 也就是宽度和高度, 1280是宽度, 720是高度, 如果你要调整视频大小, 修改这两组数字就可以.
    -oac 指定音频编码器参数
    mp3lame 这是mp3编码器, 因为版权原因, mencoder和ffmpeg是不能直接添加mp3编码的, 这是调用lame的mp3编解码器
    -mc 0 设置音视频同步,增这个参数可防止音频和视频出现不同步现象
    a.mp4 a1.mp4 这是要合并的文件, 分别是第一个和第二个,用空格隔开, 如果有更多文件, 可以依次输入并用空格隔开
    -o 输出参数, 表示将前面的文件保存为这个参数后面的文件
    monika1.mp4 合并后的文件

    转码命令
    D:\ffmpeg\bin\ffmpeg.exe -i monika1.mp4 -vcodec libx264 -acodec aac -ar 44100 -vf scale=1280:720 monika.mp4

    D:\ffmpeg\bin\ffmpeg.exe 这是主程序
    -i 输入参数, 将要转换编码的文件读入内存或程序
    monika1.mp4 要转码的文件
    -vcodec 指定视频编码器参数
    libx264 mp4编码, 为什么这里不用x264或 h264, 因为这个是根据你系统内的编码器来决定的. 所以这条命令要出什么错的话, 可以调整这里
    -acodec 指定音频编码器
    aac 也可以是faac, 是aac编码, 我发现在微信朋友圈里, 音频编码是mp3的视频是不能够播放的, 可能就是因为版权的问题. 所以我们需要转换为aac或 faac, flac等编码
    -ar 指定采样率参数, 采样率高一点好像声音会大一些, 默认一般是44100
    -vf scale=1280:720 指定视频像素, 也就是宽度和高度, 1280是宽度, 720是高度, 如果你要调整视频大小, 修改这两组数字就可以.
    monika.mp4 转换后的视频文件.

    为什么说裁剪合并文件之后还需要转换呢, 因为我发现, mencoder对h264的支持不是太好, 用mencoder裁取或合并的视频, 如果不用ffmpeg转码,在一些平台上可能无法正常播放,起码微信上是这样.
    为什么要推荐大家使用ffmpeg和mencoder, 是因为市面上的大部份视频操作类程序软件都是基于这两个源码和协议开发的. 它的支持和兼容更完美, 不会有视频头或水印或黑边等现像出现.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注