FFmpeg 基本使用

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈挨踢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值