ffmpeg 命令记录
添加内挂字幕(软字幕)
电脑自带 的播放器放不了内挂字幕,可以选择vlc播放器
//不加-c:s srt好像可以
ffmpeg -i src.mp4 -i src.srt -c copy -c:s srt -disposition:s:0 forced output.mkv
//-disposition:s:0 forced 让播放器强制选择字幕
添加硬字幕
ffmpeg -i src.mp4 -vf subtitles=a.srt yingzi.mkv
从网页得到的两个webm格式音频和视频,转MP4,添加字幕
方法1
视频和音频转换成mp4和aac
ffmpeg -i audio.webm -acodec aac src.aac
ffmpeg -i video.webm" -vcodec h264 src.mp4
//视频和音频合成
ffmpeg -i src.mp4 -i src.aac -vcodec copy -acodec copy hechen.mp4
//合成字幕,不加-c:s srt好像可以
ffmpeg -i hechen.mp4 -i src.srt -c copy -c:s srt output.mkv
方法2,合成webm,添加字幕
ffprobe audio.webm
//查询音频编码
查询结果,Audio:opus
Metadata:
encoder : google/video-file
Duration: 00:01:14.20, start: -0.007000, bitrate: 140 kb/s
Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
提取opus
ffmpeg -i audio.webm -acodec libopus audio.opus
-c:a copy就行蠢了,甚至直接-c copy
下一步
//合成,同样可以写-c copy
ffmpeg -i video.webm -i audio.opus -vcodec copy -acodec copy hechen.webm
//srt 转换vtt
ffmpeg -i src.srt src.vtt
//添加字幕
ffmpeg -i video.webm -i src.vtt -disposition:s:0 forced -c copy output.webm
没有-disposition:s:0 forced可能不会主动加载字幕,default的优先级可能低,不会主动加载字幕
从网页得到的两个MP4格式音频和视频,转fast MP4
//音频mp4转aac
ffmpeg -i audio.mp4 -acodec copy audio.aac
合成
ffmpeg -i video.mp4 -i audio.aac -vcodec copy -acodec copy -movflags faststart output.mp4
剪出视频片段
ffmpeg -i src.mp4 -ss 02:56 -to 03:07 out2.mp4
//用-c copy开始会黑屏,因为原样拷贝,不解码就不知道关键帧,没有关键帧加载不出画面。-crf 0~51 选择压缩级别,0不压缩,51最低。
视频转换gif
ffmpeg -i out1.mp4 -vf scale=320:-1 -f gif -r 10 10zhen.gif
//-r 10 每秒钟10帧。
//缩放宽度320,高度等比例缩放。GIF很大,最好缩放一下
多段视频合成一个视频
编辑filelist. txt,与视频在同一文件夹下,windows可以点三个点选择复制文件路径进去
内容为
file 'c:\users\1.mp4'
file 'c:\users\2.mp4'
//注意为单引号
ffmpeg命令
ffmpeg -f concat -safe 0 -i filelist. txt -c copy final. mp4