如何利用ffmpeg完成MKV转换MP4的视频格式,视频转gif图片格式。

xc
xc
2022-06-01 / 0 评论 / 726 阅读 / 正在检测是否收录...

ffmpeg视频处理

最近,从youtube上下载了一些视频,文件格式是.mkv的,那如何可以将视频无损的转换为,mp4格式呢?
首先,你的电脑需要安装一个神级的软件程序ffmpeg,安装方法请自行百度,很多了,我就不重复了,请注意要设置环境变量。
安装好以后,在你所需要的转换的视频文件夹的地址栏,输入:cmd 回车

视频mkv转mp4

此时,cmd命令窗口就会切换到你目前视频地址。执行:

ffmpeg -i A.mkv -vcodec copy A.mp4

注意:
A就是你的视频文件名,请自行修改。
-vcodec copy 命令是视频不重新编码,快速转换。
当我们有时候需要利用h264重新编码时,执行:

ffmpeg -i A.mkv -vcodec h264 A.mp4

视频webm和音频m4a合并转mp4,mkv

当我们需要将一个无声音的视频文件,比如youtube下载下来的高清视频文件.webm和音频文件.m4a进行合并在一起,并转换为mkv或mp4时,执行

ffmpeg -i A.webm -i A.m4a -vcodec copy A.mkv
ffmpeg -i A.webm -i A.m4a -vcodec copy A.mp4

注意:
此时转换出来的视频,很有可能是有声音无画面,这个似乎是ffmpeg的bug导致的,网上有很多这样的问题,建议还是利用h264重新编码转换,如何做?请看上面的示例,要学会举一反三。

mkv转mp4 批处理

最后来说一下,当我们的文件夹中有很多mkv文件的时候,如何实现批量mkv转换mp4呢?
,在视频所在文件夹新建记事本,并复制一下代码,最后文件后缀txt修改为bat,并双击执行:

@echo off & title
cd /d %~dp0
for %%a in (*.mkv) do (
ffmpeg -i "%%~sa" -y -vcodec copy -acodec copy "%%~na.mp4"
)
pause

以上代码是视频不进行重新编码,如果需要h264重新编码,请学着举一反三,不要只会复制和粘贴。

视频转图像gif

补充一下:视频格式转换GIF图片的代码,因为目前利用迅雷播放器转换出来的效果不理想或找软件还收费,特此一下代码:
直接转换mp4到gif:

ffmpeg -i c.mp4 c.gif 

做一些优化修改进行转换mp4到gif,-ss 2 -t 5,从第2秒的地方开始,往后截取5秒钟, -r 用于设定帧数. 通常Gif有15帧左右就比较流畅了:

ffmpeg -ss 2 -t 5 -i output1.mp4 -s 272x480 -r 15 output1.gif

音频wav转mp3

补充内容:
利用ffmpeg完成WAV转换MP3的音频格式,批量执行代码:

@echo off & title
cd /d %~dp0
for %%a in (*.wav) do (
ffmpeg -i "%%~sa" -f mp2 "%%~na.mp3"
)
pause

wma转换mp3

利用ffmpeg完成wma转换MP3的音频格式,批量执行代码:(平均比特率为192kb每秒,采样率为44100hz的mp3文件)

@echo off & title
cd /d %~dp0
for %%a in (*.wma) do (
ffmpeg -i "%%~sa" -ab 192 -ar 44100 "%%~na.mp3"
)
pause

旋转视频画面

利用ffmpeg 将视频图像顺时针旋转90°。 如果是逆时针,将-90修改为90即可。
需要手动新建子文件夹:result

@echo off & title
cd /d %~dp0
for %%a in (*.mp4) do (
ffmpeg -i "%%~sa" -metadata:s:v rotate="-90" -codec copy "result\%%~na.mp4"
)
pause

画面裁剪

有时候一个竖屏展示的画面是横屏,我们只想要横屏部分,就需要视频画面裁剪功能了,通常的做法是用视频编辑软件,裁剪后,再次转码,无论是保存为720P还是1080P 视频的体积都变大很多。
用ffmpeg 可以很好的处理这个问题,似乎也会转码,但基本参数都和原视频一致。

crop的参数格式为w:h:x:y,
w、h为输出视频的宽和高,
x、y标记输入视频中的某点,将该点作为基准点,向右下进行裁剪得到输出视频。

如果x y不写的话,默认居中剪切

举例:
我手机保存的短视频的尺寸是1080:1990,我只想要中间横屏的部分:
一般横屏视频的比例是16:9,所以算出横屏的高度尺寸是608。

ffmpeg -i 1.mp4 -vf crop=1080:608 out.mp4 -y

结尾

最后,不得不感叹ffmpeg的强大之处,有了它,还需要什么视频转换软件,还需要什么视频编辑软件?
ffmpeg最大的优点就是:非常流畅,快速搞定,不像某些封装好的软件,进度条只见动不见走。
ffmpeg最大的缺点就是:可能就是可视化界面不好吧?不过似乎已经有人给它穿了界面的衣服,有兴趣的自己百度一下,不过对我来说,代码执行更省事,简单明了,大多数还不是复制和粘贴,简单调整一下,很快就好了。

1

评论 (0)

取消
使用 Typecho 建站,并搭配 joe 主题(有修改)
蜀ICP备2022005623号 川公网安备 51012202001212号
本站已运行 00000000
Copyright © 1970 ~ Xcshare All rights reserved.