一,安装
1,windows:下载软件包,随便放个目录,配置环境变量(百度搜下很多)
2,linux:有点繁琐,这里只说下centos(因为centos最容易)
安装2个yum源
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
sudo yum install ffmpeg ffmpeg-devel -y
除了慢没别的毛病
安装完成后运行 ffmpeg -version 查看是否成功
编译安装参考这篇,说的很细了
centos 安装ffmpeg_qq_duhai的博客-CSDN博客_centos安装ffmpeg
二,使用
1,视频+视频
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
mp4不能直接合并,需要先转成ts,再把ts是合并成mp4
2,视频+音频
#视频消音
ffmpeg -i output.mp4 -vcodec copy –an output.mp4
#视频+音频
ffmpeg -i 1.mp3 -i output.mp4 voice.mp4
3,视频+字幕
#ass字幕文件
ffmpeg -i 1.mp4 -vf "ass=zimu.ass" zimu.mp4
#srt字幕文件
ffmpeg -i output.mp4 -vf subtitles=zimu.srt zimu.mp4
4,2种字幕文件都可以,建议用ass,因为如果要设置字幕的大小颜色位置字体啥的,在ass里都可以直接改,srt的话还得再找命令
5,但是ass字幕的格式比较复杂,手写不出来,所以可以先手写一个srt的,再转成ass
这是srt字幕的文件格式
1
00:00:00.000 --> 00:00:02.000
第一句
2
00:00:03.000 --> 00:00:05.000
第二句
这是srt转ass的命令
ffmpeg -i zimu.srt zimu.ass
然后就得到了一个ass文件。
三,linux安装中文字体
1,在linux上操作加字幕,文字是乱码,是因为没有中文字体,所以需要安装
2,从本地电脑随便复制个中文字体,上传到/usr/share/fonts,然后执行安装命令
mkfontscale #如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale
mkfontdir
fc-cache -fv #如果提示 fc-cache: command not found,则需要安装# yum install fontconfig
fc-list
红框圈出来的就是字体的名字
ass文件的这个位置是字体。
还有个点要注意,ass文件很可能是你本地编辑好了再上传的,那么文件的类型是doc,注意要改成unix
四,最后使用的话,不管是用java还是php,反正都是调用命令,这个就无所谓了