1.保存文件:
ffmpeg -i rtsp://admin:12345@172.29.61.108/Streaming/Channels/1 -vcodec copy -acodec libvo_aacenc -f mpegts
"F:\\wgg\\sound_test.ts"
-i 后面接输入流, vcodec 后面视频编码方式,copy表示不重新编码。 -acodec 后面跟音频编码方式,libvo_aacenc 是增强型编码方式 。-f 后面跟封装格式也就是format mpegts表示ts流。
2. 按时间保存文件
ffmpeg -ss 00:00:00 -vsync 0 -t 00:10:00 -re -i D:\wgg\test.ts -vcodec copy -an -f mp4 test.mp4
-i 前面要加上-re,-表示按时间戳读取文件, 不需要音频 -acodec 替换位-an 后面不跟参数。
3. ffmpeg 向rtmp server推流
ffmpeg -re -i D:\record\langxi\langxi.ts -vcodec copy -f flv rtmp://127.0.0.1/live/mystream
推送rtmp视频流时 流format需要设定位flv, mystream 可以被替换,比如 rtmp://127.0.0.1/live/teststream。
4. ffmpeg 发布hls流
ffmpeg -i rtsp://admin:12345@172.28.12.35:554/streaming/channels/101 -vf scale=320:240 -c:v libx264
-hls_time 1 -hls_list_size 10 -hls_wrap 10 D:\wgg\test\streaming.m3u8
scale=320:240 表示新的视频宽高位320X240 编码方式位h264 -hls_time 大小影响到每个hls切片时间,-hls_wrap影响到切片的个数。
5.视频流中抓取图片命令
ffmpeg -i rtsp://admin:12345@IP:PORT/streaming/channels/101 -f image2 -ss 5 -vframes 1 -s 320*240 D:\record\test.jpeg
-vframes 1表示抓取一张图片
6.图片格式转换
ffmpeg -i 1.jpg -s 640x480 -pix_fmt yuv420p 1.yuv
640x480表示分辨率 ,可以自己的需要更改,yuv420p是像素格式。
7. ffmepg 获取pc摄像头视频并推流命令
ffmpeg -f dshow -i video="Integrated Webcam" -c:v libx264 -s 320*240 -f flv rtmp://127.0.0.1/live/mystream
Integrated Webcam是摄像头名称,可以从设备管理器中看到。也可以通过ffmpeg -list_devices true -f dshow -i dummy
命令获取。
8. 硬件加速设备查询命令
ffmpeg.exe -hwaccels
9. 批量合成文件命令
a. 建立一个TXT文件(video.txt),文件内容为:
File ‘文件全名’
File ‘123.flv’
……
b.利用合并命令:
ffmpeg -f concat -i video.txt -c copy output.mkv
10. 添加水印:
ffmpeg.exe -i D:\record\8B86E8A9-EDCC-4904-999A-744B097BD40D\20170412\20170412112120.ts -vf "movie=D\\:\\test\\\\test1.jpg[watermask];[in][watermask] overlay=100:100[out]" -y d:\record\test.ts
11.从视频流中获取图片:
ffmpeg.exe -i rtsp://admin:admin12345@192.168.1.65:554/h264/ch1/main/av_stream -vframes 5 -an d:\%d.jpeg
-vframes 5 表示 取5张图片 d:\%d.jpeg 表示图片存在d:\目录下 文件名从1.jpeg开始到5.jpeg结束。