分离视频中的音频和视频数据:
提取视频数据与源视频使用相同的编码器:
ffmpeg -i input.mp4 -c:v copy -an output.mp4
-c:v copy表示保持源文件编码器,-an表示舍弃音频数据
提取音频数据与源视频中的音频使用相同编码
ffmpeg -i input.mp4 -c:a copy -vn output.aac
-c:a copy表示目标保持源文件编码器,-vn表示舍弃视频数据
剪切视频
从某时间间隔,剪切一段视频。目标与源使用相同的编码器
ffmpeg -i input.mp4 -ss 5 -t 10 -c copy output.mp4
-ss 5 表示从第五秒开始, -t 10 表示提取10秒钟,-c copy表示目的与源使用相同的编码器
从视频中抽取可以播放的h.264
ffmpeg -i input.flv -c copy -bsf h264_mp4toannexb output.h264
ffmpeg -i input.mp4 -vcodec copy -an -bsf h264_mp4toannexb output1.h264
ffmpeg -i input.mp4 -vcodec copy -bsf h264_mp4toannexb output.h264
视频格式准换
使用ffmpeg默认的目标文件解码器和目标编码参数,将源格式转换封装格式
ffmpeg -i input.mp4 ouput.avi
output.avi封装格式内部使用的编码格式可能与input.mp4使用的编码格式不同,用户没有在命令行指定目标文件的参数信息,ffmpeg使用默认的参数进行转码。
保证目标文件和源文件的一样的视频编码指令,不改变源格式的编码的格式,只改变源文件的封装格式,将源格式转目标的封装格式
ffmpeg -i input.mp4 -vcodec copy -acodec copy output.avi
保证目标文件和源文件的一样的视频编码质量,改变目标文件的编码器
ffmpeg -i input.mp4 -qscale:v 0 -qscale:a 0 -vcodec libx264 -acodec aac output.mp4
指定目标文件的编码格式,将源格式转目标的封装格式
ffmpeg -i input.mp4 -c:v mjpeg ouput.avi
(v表示视频,-c表示指定目标文件编码器格式)
mp4转avs
ffmpeg -i input.mp4 -c:v cavs -f cavsvideo fuck.avs
需要ffmpeg支持encoder libxavs,不支持需安装
mp4转hls文件
ffmpeg -i input.mp4 -profile:v baseline -level 3.0 -s 320x480 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8
将hls的ts合并为源格式
调整视频播放速度
1、视频播放时,2倍速播放,保持图片和声音同步
ffmpeg -i input.mp4 -vf setpts=PTS/2 -af atempo=2.0 -r:v 60 output.mp4
2、视频播放时,4倍速播放,但是图片和声音不同步了
ffmpeg -i input.mp4 -vf setpts=PTS/4 youtube-101-4speed.mp4
YUV序列转AVI
ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi
切割
缩放
下面两条命令有相同效果
ffmpeg -i input.mpg -s 320x240 output.mp4
ffmpeg -i input.mpg -vf scale=320:240 output.mp4
对输入视频成比例缩放
改变为源视频一半大小
ffmpeg -i input.mpg -vf scale=iw/2:ih/2 output.mp4
改变为原视频的80%大小:
ffmpeg -i input.mpg -vf scale=iw*0.8:ih*0.9 output.mp4
在未知视频的分辨率时,保证调整的分辨率与源视频有相同的横纵比。
宽度固定400,高度成比例:
ffmpeg -i input.avi -vf scale=400:400/a
ffmpeg -i input.avi -vf scale=400:-1
相反地,高度固定300,宽度成比例:
ffmpeg -i input.avi -vf scale=-1:300
ffmpeg -i input.avi -vf scale=300*a:300
显示FFmpeg支持的音频原始格式
ffmpeg -formats | grep PCM
解码为特定格式的pcm
ffmpeg -i test1.flv -f s16le -acodec pcm_s16le output.raw
-f 表示输出文件格式
从视频中采集音频
ffmpeg -i input.mp4 -f mp3 audio.mp3
播放视频
原始尺寸播放:
ffplay -i input.mp4
指定显示尺寸:
ffplay -x 480 -y 320 -i input.mp4
窗口显示标题:
ffplay -window_title ''caterpillar-tv" -i input.mp4
播放完成自动关闭:
ffplay -autoexit -i input.mp4
播放yuv:
ffplay -f rawvideo -video_size 480x320 -i inputfile_path