ffmpeg命令的一些应用场景
ffmpeg 查看信息
ffmpeg -i input.flv -vf showinfo -f null - > res.txt 2>&1
修改播放速率
ffmpeg -y -i input.flv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" -c:a speex -c:v h264 output.flv
只修改音频
ffmpeg -y -i input.flv -filter_complex "[0:a]atempo=0.74712[a]" -map "[a]" -c:a libspeex -ar 16000 -cbr_quality 6 -vad 1 -frames_per_packet 8 output.flv
只改视频
ffmpeg -y -i video.flv -filter_complex "[0:v]setpts=0.85962*PTS[v]" -map "[v]" -c:v h264 output.flv
音频重采样16KHz
ffmpeg -i input.flv -af aresample=async=16000 -c:a libspeex -ar 16000 -cbr_quality 6 -vad 1 -frames_per_packet 8 -f flv fix.flv
flv转wav
ffmpeg -i input.flv -ar 44100 fix.wav
mp3转flv
ffmpeg -i input.mp3 -c:a libspeex -ar 16000 -cbr_quality 6 -vad 1 -frames_per_packet 8 fix1.flv
ffmpeg修复视频的时间戳(帧率15帧))
ffmpeg -i input.flv -filter_complex "setpts=N/(15*TB)" -profile:v main -level 3.1 -c:v h264 out.flv
剪裁flv文件,截取从-ss开始的-t时间
ffmpeg -i input.flv -ss 00:00:00 -t 00:00:43 -c copy 1.flv
合并flv视频(把文件1.flv和2.flv合并成output.flv)
cat inputs.txt
file '1.flv'
file '2.flv'
ffmpeg -f concat -i inputs.txt -c copy output.flv
查看视频的信息
ffprobe -print_format xml -show_packets input.flv> a.log
ffprobe -print_format xml -show_packets input.flv |grep "codec_type=\"video\"" >a
ffprobe -print_format xml -show_packets input.flv |grep "codec_type=\"audio\"" >b
查看flv文件的信息(包括包数)
ffprobe -show_streams -print_format json -count_packets -i audio.flv > 1.json
yamdi 添加信息
yamdi -w -a 500 -i input.flv -o dump.flv