1、MP4转FMP4
ffmpeg -i 1.mp4 -g 52 -f mp4 -movflags frag_keyframe+empty_moov out.mp4
2、RTSP转RTMP
Windows:
ffmpeg -i "rtsp://xxx" -vcodec copy -acodec copy -f flv "rtmp://localhost/live/stream001"
Linux:
ffmpeg -re -rtsp_transport tcp -i "rtsp://xxx" -f flv -r 25 -s 1920x1080 -an rtmp://localhost/live/stream001
3、MP4转TS
ffmpeg -y -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb out.ts
4、对TS切片,每个片段5秒
ffmpeg -i 1ts.ts -c copy -map 0 -f segment -segment_list 1.m3u8 -segment_time 5 前缀-%03d.ts
5、MP4转TS切片,每个片段5秒
ffmpeg -i 1.mp4 -c:v libx264 -hls_time 5 -hls_list_size 0 -c:a aac -strict -2 -f hls out.m3u8
ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb -map 0 -f segment -segment_list 1.m3u8 -segment_time 10 out_%03d.ts
6、MP4转H264
ffmpeg -i 1.mp4 -vcodec copy -an -vbsf h264_mp4toannexb out.h264
7、录制桌面视频
Windows:
ffmpeg -f dshow -i video="screen-capture-recorder" v-out.mp4
ffmpeg -f gdigrab -i desktop v-out.mp4
#以15的帧率抓屏20秒,保存为视频格式是vp9的mkv文件
ffmpeg -f gdigrab -t 20 -r 15 -i desktop -vcodec libvpx-vp9 v-out-vp9.mkv
#以15的帧率抓屏10秒,保存为视频格式是vp9,限时30秒,分辨率是720x420的mkv文件
ffmpeg -f gdigrab -t 10 -r 15 -t30 -i desktop -vcodec libvpx-vp9 -s 720x420 v-out-vp9-720-420.mkv
#以15的帧率抓屏20秒,抓屏范围,以点(100,60)开始,大小1280x720,保存为视频格式是264的mp4文件
ffmpeg -f gdigrab -video_size 1280x720 -offset_x 100 -offset_y 60 -t 20 -r 15 -i desktop -vcodec libx264 v-out-x264.mp4
#gdigrab通过设定不同的输入URL,支持两种方式的屏幕抓取:#“desktop”:抓取整张桌面。或者抓取桌面中的一个特定的区域
#“title={窗口名称}”:抓取屏幕中特定的一个窗口
#从屏幕的(10,20)点处开始,抓取1280x720的屏幕,设定帧率为5
ffmpeg -f gdigrab -framerate 5 -offset_x 10 -offset_y 20 -video_size 1280x720 -i desktop v-out.mpg
#按键Q/Ctrl+C:结束录制
Linux:
ffmpeg -video_size 1280x720 -framerate 25 -f x11grab -i :0.0+100,200 v-out.mp4
MacOS:
ffmpeg -f avfoundation -i "1:0" av-out.mov
#1表示视频设备序列号
#0表示音频设备序列号
8、录制音频
Windows:
ffmpeg -f dshow -i audio="audio-capturer" a-out.aac
9、同时录制音视频
Windows:
ffmpeg -f dshow -i video="screen-capture":audio="audio-capturer" av-out.mp4
Linux:
ffmpeg -video_size 1280x720 -framerate 25 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i hw:0 av-out.mkv
或
ffmpeg -video_size 1280x720 -framerate 25 -f x11grab -i :0.0+100,200 -f pulse -ac 2 -i default av-out.mkv
10、查看视频录制的可选参数
ffmpeg -f dshow -list_options true -i video="screen-capture"
11、查看音频录制的可选参数
ffmpeg -f dshow -list_options true -i audio="audio-capturer"
12、查看设备名字
Windows:
ffmpeg -list_devices true -f dshow -i dummy
dshow插件Screen Capturer Recorder, 项目地址:https://sourceforge.net/projects/screencapturer/files/
Linux:
ffmpeg -list_devices true -f dshow -i dummy
MacOS:
ffmpeg -f avfoundation -list_devices true -i ""
13、视频录制(依次设置:分辨率 帧率 像素格式)
ffmpeg -f dshow -video_size 1280x720 -framerate 30 -pixel_format yuv420p -i video="screen-capture-recorder" v-out.mp4
14、指定参数录制音视频
ffmpeg -f dshow -video_size 1280x720 -framerate 30 -pixel_format yuv420p -i video="screen-capture-recorder":audio="virtual-audio-capturer" av-out.mp4
15、RTSP录制MP4
ffmpeg -y -i rtsp://xxx -vcodec copy -acodec copy -f mp4 record.mp4
#播放RTSP
ffplay rtsp://xxx