ffmpeg命令行参数

ffplay: 
-ss 10:从第10秒开始播放
-t   10:播放10秒
-autoexit:播放完后自动退出
-window_title "adfas":windows窗口显示adfas
-x 400:窗口宽400
-y 400:窗口高400
-vcodec h264:强制解码器h264解码
-acodec aac:强制音频解码器aac解码
-an:禁用音频
-vn:禁用视频
-i 输入流
-f  设定输出格式

音频参数:
-aframes :设置要输出的音频帧数
-b:a  音频码率
-ar    设定采样率
-ac   设定声音的channel数
-acodec 设定声音编解码器,如果采用copy,表示拷贝原始编解码器
-an:不处理音频
-af:音频过滤器

视频参数:
-vframes:输出视频帧数
-b:     400k     视频码率【两者一样】
-b:v   400k     视频码率
-r              设定帧率
-s   480x270           设定画面的宽和高【分辨率】
-vn           不处理视频
-aspect
-vcodec libx264    设定视频编解码器
-vf            视频过滤器

播放yuv数据:./ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 akiyo.yuv
-framerate 25:播放帧率
-pixel_format yuv420p:指定像素格式为yuv420p
-video_size 320x240:指定播放大小

播放rgb数据:./ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24.rgb
播放PCM数据:./ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
-ar:设置PCM的采样率
-ac:通道数:
-f:格式

视频过滤器:-vf
-vf transpose=1:旋转90度,2:3:4:
-vf hflip:水平翻转
-vf vfilp:垂直翻转
-vf hflip,transpose=1:旋转 + 转
-vf setpts=PTS/2:加快播放速度

音频过滤器:-af
-af atempo=2:音频变速播放


提取音视频数据:
提取视频:
./ffmpeg -i t1.mp4 -vcodec copy -an vedio.mp4  不重新编码
./ffmpeg -i t1.mp4 -vcodec libx264 -an test2.h264 使用264重新编码

音频提取:
./ffmpeg -i t1.mp4 -acodec copy -vn audio.aac               不重新编码
./ffmpeg -i t1.mp4 -acodec libmp3lame -vn audio.mp3  使用libmp3lame重新编码

yuv数据提取:
./ffmpeg -i t1.mp4 -ss 10 -t 5 -pix_fmt yuv420p yuv420p.yuv  需要指定格式

提取RGB
./ffmpeg -i t1.mp4 -ss 10 -t 5 -pix_fmt rgb24 -s 320x240 rgb320x240.rgb

RGB和YUV之间的转换
./ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420.yuv -pix_fmt rgb24 rgb24_320x240.rgb

PCM数据提取:
./ffmpeg -i out.mp3 -ar 48000 -ac 2 -codec:a pcm_s16le out2_s16le.wav
./ffmpeg -i out.mp3 -ar 48000 -ac 2 -sample_fmt s16 out_s16.wav
./ffmpeg -i out.mp3 -ar 48000 -ac 2 -f s16le 48000_x_s16le.pcm

ffmpeg转封装格式:
./ffmpeg -i t1.mp4 -vcodec copy -acodec copy test_copy.ts:等价于 ./ffmpeg -i t1.mp4 -codec copy test.t
./ffmpeg -i t1.mp4 -vcodec libx265 -acodec libmp3lame out_h265.mkv


生成测试文件:
截取10文件:./ffmpeg -i t3.mp4 -ss 10 -t 5 c.mp4
生成ts文件: ./ffmpeg -i a.mp4 -codec copy -vbsf 1.ts
生成flv文件:./ffmpeg -i t1.mp4 -codec copy 1.flv

拼接MP4文件:   ./ffmpeg -f concat -i list.txt -codec copy out2.mp4 
list.txt文件
file 'a.mp4'
file 'b.mp4'
file 'c.mp4'

拼接ts格式文件:./ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy ts_all.ts
拼接flv格式文件:./ffmpeg -i "concat:1.flv|2.flv" -codec copy flv_out.mp4

ffmpeg推流和拉流:
拉流:./ffplay     http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
          ./ffmpeg  -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -c copy cctv1.ts

推流:ffmpeg -re -i out.mp4 -c copy flv rtmp://server/live/streamName
    -re,表示按时间戳读取文件

裁剪:./ffmpeg -i out.jpg  -vf crop=iw/2:iw/2:0:0 aaa.jpg

添加水印:
播放:./ffplay -i t1.mp4 -vf "drawtext=fontsize=100:fontfile=/usr/share/fonts/gnu-free/FreeSans.ttf:text='%{localtime\:%Y\-%m\-%d-%H-%M-%S}':fontcolor=red:x=20:y=20:alpha=0.6:box=1:boxcolor=yellow"

存储:./ffmpeg -i t1.mp4 -vf "drawtext=fontsize=100:fontfile=/usr/share/fonts/gnu-free/FreeSans.ttf:text='%{localtime\:%Y\-%m\-%d-%H-%M-%S}':fontcolor=red:x=20:y=20:alpha=0.6:box=1:boxcolor=yellow" -t 5 ta.mp4

添加:-re  以秒显示

添加图片水印:./ffmpeg -i t1.mp4 -vf "movie=out.jpg[wartermark];[in][wartermark]overlay=10:10[out]" output.mp4

画中画:./ffplay -i t1.mp4 -vf "movie=t2.mp4,scale=200x200[sub];[in][sub]overlay=20:20[out]"

多宫格:./ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex "nullsrc=size=640x480[base];[0:v] setpts=PTSSTARTPTS,scale=320x240[upperleft];[1:v]setpts=PTS-STARTPTS,scale=320x240[upperright];[2:v]setpts=PTSSTARTPTS, scale=320x240[lowerleft];[3:v]setpts=PTSSTARTPTS,scale=320x240[lowerright];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][upperright]overlay=s
hortest=1:x=320[tmp2];[tmp2][lowerleft]overlay=shortest=1:y=240[tmp3];[tmp3][lowerright]overlay=shortest
=1:x=320:y=240" out.mp4


 

你可能感兴趣的:(工作学习,语音识别,html5,自动驾驶)