近段时间用java写了个服务处理视频,服务中包含的视频转码,视频裁剪,获取音频,添加字幕到视频中这些功能。下面将用到的命令记录下来方便以后查找。同时 添加多字幕到视频中的命令网上还未找到现成的,正好记录下来给看到博客的人一些参考。
1、从视频中截图
ffmpeg -ss 00:01:23.26 -y -i infile outfile -r 1 -vframes 1 -an -sn -vcodec mjpeg
这条命令的意思是 从infile视频中截取00:01:23.26这个时间点的图片输出到outfile
2.视频裁剪
ffmpeg -ss 00:03:50-i infile -t 30 -vcodec copy -acodec copy outfile
这条命令的意思是从 00:03:50这个时间点开始截取30s时长的视频输出到outfile
3.其他格式视频转码MP4格式
ffmpeg -y -i infile -vcodec mpeg4 -acodec copy -qscale 6 outfile
4.获取视频中的音轨
ffmpeg -y -i infile -vn -sn -ab 128k -acodec libmp3lame outfile
5.音频和视频合成新视频 (制作搞笑视频)
ffmpeg -y -i videoFile -i audioFile -vcodec mpeg4 -acodec libmp3lame outfile
6.将字幕添加到视频内部
ffmpeg -y -i videoFile -f srt -i srtFile -vcodec copy -acodec copy -scodec mov_text -sqcale 6 -metadata:s:s:0 language=eng outfile
7.视频中压入多个字幕
ffmpeg -y -i videoFile -f srt -i srtFile1 -f srt -i srtFile2 -vcodec mpeg4 -acodec libmp3lame -map 0 -map 1 -c:s:0 mov_text -c:s:1 mov_text
1、从视频中截图
ffmpeg -ss 00:01:23.26 -y -i infile outfile -r 1 -vframes 1 -an -sn -vcodec mjpeg
这条命令的意思是 从infile视频中截取00:01:23.26这个时间点的图片输出到outfile
2.视频裁剪
ffmpeg -ss 00:03:50-i infile -t 30 -vcodec copy -acodec copy outfile
这条命令的意思是从 00:03:50这个时间点开始截取30s时长的视频输出到outfile
3.其他格式视频转码MP4格式
ffmpeg -y -i infile -vcodec mpeg4 -acodec copy -qscale 6 outfile
4.获取视频中的音轨
ffmpeg -y -i infile -vn -sn -ab 128k -acodec libmp3lame outfile
5.音频和视频合成新视频 (制作搞笑视频)
ffmpeg -y -i videoFile -i audioFile -vcodec mpeg4 -acodec libmp3lame outfile
6.将字幕添加到视频内部
ffmpeg -y -i videoFile -f srt -i srtFile -vcodec copy -acodec copy -scodec mov_text -sqcale 6 -metadata:s:s:0 language=eng outfile
7.视频中压入多个字幕
ffmpeg -y -i videoFile -f srt -i srtFile1 -f srt -i srtFile2 -vcodec mpeg4 -acodec libmp3lame -map 0 -map 1 -c:s:0 mov_text -c:s:1 mov_text
-metadata title="video title" -qscale 6 -metadata:s:s:0 language=eng -metadata:s:s:1 language=fre outfile