ffplay
ffplay -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
ffplay -i test.mp4
ffplay -i test.wav
ffplay -pix_fmt nv12 -s 192x144 intput.yuv
ffplay -pix_fmt nv21 -s 640x480 -vf extractplanes=‘y’ input.yuv
ffmpeg
录制
ffmpeg -f avfoundation -r 30 -i 0:0 out.mp4 # 录制屏幕及声音
ffmpeg -f avfoundation -r 30 -i 0 out.mp4 # 录制屏幕
ffmpeg -f avfoundation -i :0 out.wav # 录制声音
抽取
ffmpeg -i input.mp4 -acodec copy -vn out.aac # 抽取音频
ffmpeg -i input.mp4 -vcodec copy -an out.h264 # 抽取视频
转格式
ffmpeg -i input.mp4 -vcodec copy -acodec copy out.flv
转码
ffmpeg -y -i qianz.mp4 -b 921k -ab 127k qz.mp4
音视频合并
ffmpeg -i out.h264 -i out.aac -vcodec copy -acodec copy out.mp4
裁剪片段
ffmpeg -i input.mp4 -ss 00:00:30 -t 10 out.mp4
片段拼接
vim inputs.txt
file '1.flv'
file '2.flv'
ffmpeg -f concat -i inputs.txt -c copy output.flv
hls 切片
ffmpeg -i input.mp4 -c:v libx264 -c:a libfdk_aac -strict -2 -f hls out.m3u8
视频图片互转
视频转 JPEG
ffmpeg -i test.flv -r 1 -f image2 image-%3d.jpeg
视频转 gif
ffmpeg -i out.mp4 -ss 00:00:00 -t 10 out.gif
图片转视频
ffmpeg -f image2 -i image-%3d.jpeg images.mp4
直播相关
nginx.conf 添加
rtmp {
server {
listen 1935;
chunk_size 4000;
application live
{
live on;
record off;
allow play all;
}
}
}
http://bbs.chinaffmpeg.com/1.swf
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://server/live/streamName # 推流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv # 拉流
ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v copy -f flv rtmp://server/live/h264Stream # 转流
ffmpeg -framerate
ffmpeg -framerate 15 -f avfoundation -i “0” -s 1280x720 -c:v libx264 -f flv rtmp://localhost:1935/live/room
滤镜处理
添加水印
ffmpeg -i input.mp4 -vf “movie=logo.png,scale=64:48[watermask];[in][watermask] overlay=30:10 [out]” water.mp4
删除水印
ffplay -i water.mp4 -vf delogo=x=806:y=20:w=70:h=80:show=1 # 找到水印的位置
ffmpeg -i water.mp4 -vf delogo=x=806:y=20:w=70:h=80 dewater.mp4 # 删除水印
视频缩小一倍
ffmpeg -i input.mp4 -vf scale=iw/2:-1 scale.mp4
视频裁剪
ffmpeg -i input.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy -video_size 1280x720 crop.mp4
倍速处理
ffmpeg -i input.mp4 -filter_complex “[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]” -map “[v]” -map “[a]” speed2.mp4
对称视频
ffmpeg -i input.mp4 -filter_complex “[0:v]pad=w=2*iw[a];[0:v]hflip[b];[a][b]overlay=x=w” duicheng.mp4
画中画
ffmpeg -i out.mp4 -i out1.mp4 -filter_complex “[1:v]scale=w=176:h=144:force_orignal_aspect_ratio=descrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=0[out]” -map “[out]” -movflags faststart new.mp4
录制画中画
ffmpeg -f avfoundation -i “0” -framerate 30 -f avfoundation -i “0:0” -r 30 -c:v libx264 -preset ultrafast -c:a libfdk_aac -profile:a aac_he_v2 -ar 44100 -ac 2 -filter_complex “[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[a];[0:v][a]overlay=x=W-w-10:y=0[out]” -map “[out]” -movflags faststart -map 1:a huazhonghua.mp4
多路视频拼接
ffmpeg -i f avfoundation -i “1” -framerate 30 -f avfoundation -i “0:0” -r 30 -c:v libx264 -preset ultrafast -c:a libfdk_aac -profile:a aac_he_v2 -ar 44100 -ac 2 -filter_complex “[0:v]scale=320:240[a];[a]pad=640:240[b];[b][1:v]overlay=320:0[out]” -map “[out]” -movflags faststart -map 1:a out.mp4
处理原始数据
提取 yuv 数据
ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv
ffplay -s 1920x1080 out.yuv
提取 pcm 数据
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
ffplay -ar 44100 -ac 2 -f s16le -i out.pcm
其它相关
https://blog.csdn.net/winshining/article/details/74910586
https://www.imooc.com/video/16763