记录一下工作当中,用到的有关ffmpeg处理视频的一些常用操作,所有内容都是基于windows的bat批处理:
1、png转换成mp4:
@echo off
ffmpeg -r 25 -loop 1 -i 1.png -pix_fmt yuv420p -vcodec libx264 -b:v 600k -r:v 25 -preset medium -crf 30 -vframes 250 -r 25 -t 8 1.mp4
参数说明:-t png转成mp4时的视频执行时间
2、批处理flv转换成mp4
@echo off
for %%i in (*.flv) do (
ffmpeg -i "%%i" -vcodec copy -acodec copy "%%~ni.mp4"
)
参数说明:因为flv直接用-i转换成mp4有时会出现编码问题,所以采用以上方式处理即可,详细参数说明请参考ffmpeg官方手册
3、批量给MP4文件加片头,假设片头文件名是piantou.mp4
@echo off
for %%i in (*.mp4) do (
ffmpeg -i piantou.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts -y
ffmpeg -i %%i -vcodec copy -acodec copy -vbsf h264_mp4toannexb 3.ts -y
ffmpeg -i "concat:1.ts|3.ts" -acodec copy -vcodec copy -absf aac_adtstoasc %%~ni.mp4 -y
echo %%~ni.mp4
)
参数说明:这里的方法,其实是将mp4转换成ts格式,然后进行合并,-y参数的目的是自动覆盖生成的缓存ts文件
================
后记,ffmpeg真的是个好东西,我怀疑直接用electron+ffmpeg,可以做视频的编辑和格式转换工具的。