ffmpeg常用命令

1、查询用法
ffmpeg -encoders | findstr mp3
ffmpeg -muxers | findstr pcm
------------音频转码-----------------
-b:a 音频码率
-ar 设定采样率
-ac 设定声音的channel数
acodec 设定声音编解码器
-an 不处理音频
-af 音频过滤器
ffmpeg -i kfct.mp4 -b:a 192l -ar 48000 -ac 2 -acodec libmp3lame -aframes 200 out.mp3
--------------------ffmpeg  提取PCM数据-----------------------------
ffmpeg -i test.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm

-----------ffmpeg wav转pcm------单声道---16khz比特率------------

ffmpeg -i xingqi_left.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 out.pcm

---------播放pcm------------

ffplay -ar 16000 -ac 1 -f s16le out.pcm
----------------录制--------------------------
windows先下载一个插件:Screen Captuer Recirder

----------------------------------音频格式转换---------------------------------------------

可以用ffmpeg将wav双声道音频转换成单声道音频
ffmpeg -i wendu.wav -ac 1 -map_channel 0.0.0 wendu_left.wav

ffmpeg -i wendu_left.wav 查看属性
  Duration: 00:00:02.51, bitrate: 256 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s

---------wav转aac--------

ffmpeg -i input.wav -c:a aac -b:a 192k output.aac

这里的参数解释如下:

  • -i input.wav 指定输入文件。

  • -c:a aac 指定输出音频编码为AAC。

  • -b:a 192k 指定音频比特率为192kbps。你可以根据需求调整这个值。

  • output.aac 是输出文件的名称。

------------mp4 转yuv-------------------
该命令的作用是把所在路径下的video1.mp4文件转换为帧宽度为640,帧高度为272,像素格式为yuv420p的YUV文件:video1.yuv。
ffmpeg -i video1.mp4 -s 640x272 -pix_fmt yuv420p video1.yuv
------------mp4 转flv-------------------
ffmpeg -i Larkin_22_0529.mp4 -vcodec copy -acodec copy Larkin_22_0529.flv
ffmpeg -i Larkin_22_0529.mp4 -s 1280x720 -pix_fmt 
-------------flv转h264 设置slice 为1---------------------
ffmpeg -i Larkin_22_0529.mp4  -vcodec libx264 -slices   1  arkin_22_0529.h264

-------------提取3秒 分辨率转为320x240-----------------
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv

播放yuv
ffplay -video_size 1280x720 -i my.yuv

---------------------转换视频分辨率--------------------------
ffmpeg -i input.mp4 -vf scale=1080:1920 -y output.mp4

ffmpeg -i Larkin_22_0529.flv -vf scale=480:640 -y output_640x480.flv
-vf scale后面就是跟宽:高,如果某一个值是-1代表保持原来的比例自动生成,比如 1080:-1就是宽为1080,高则自动计算,避免变形。
可以附加code参数,来改变视频音频的编码,比如 -c:v -c:a 等。
转隔行扫描
ffmpeg -i test1.mp4  -flags +ilme+ildct -alternate_scan 1 -top 0 output.mp4

ffmpeg -i stream_chn0.h264  -flags +ilme+ildct -alternate_scan 1 -top 0 output.h26

-------------------------------------------------------
使用查看视频帧详细信息的showinfo滤镜区分隔行扫描和逐行扫描

ffmpeg -y -i output.mp4 -vf showinfo -frames:v 2 -f flv null
------------------------画中画显示效果-------------------------
ffplay -i test_1920x1080.mp4 -vf "movie=test.mp4[sub];[in][sub]overlay=x=20:y=20[out]"
子画面保留前一帧:eof_action=0 
子画面停止所有流:eof_action=1
ffplay -i input.mp4 -vf "movie=sub_320x240.mp4[sub];[in][sub]overlay=x=20:y=20:eof_action=1[out]"
终止最短的视频时全部终止(默认 false)
ffplay -i input.mp4 -vf "movie=sub_320x240.mp4[sub];[in][sub]overlay=x=20:y=20:shortest =1[out]"
----------------------ffmpeg 推流至srs 服务器-----ip地址为我本地ubuntu的地址-----------------

先在unbuntu搭建好srs服务器搭建,搭建过程我后面会写篇文章。
ffmpeg -re -i Larkin_22_0529.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.1.102/live/livestream

拉流:
ffplay rtmp://192.168.1.150/live/livestream
ffplay -x 1280 -y 720 rtmp://192.168.1.102/live/livestream

------------------------------rtsp服务器推流----------------------------------------------
h264推流:
ffmpeg -re -i Larkin_22_0529.mp4 -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://192.168.1.102/live/test
拉流:
ffplay -x 1280 -y 720 -rtsp_transport tcp rtsp://192.168.1.102/live/test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值