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