ffmpeg 命令

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结束。

 

上一篇:ansible 变更内网服务器配置


下一篇:Centos7.5搭建ELK-6.5.0日志分析平台