1.linux视频合成(视频后缀要一致)
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -lavfi hstack=inputs=3 4.mp4
(input=3表示希望合并的视频的个数)
2.纵向合成视频
ffmpeg -i 1.mp4 -i 2.mp4 -lavfi vstack=input=2 3.mp4
3.合成音频和视频
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
4.如果视频中已经包含了音频,这个时候还可以替换视频中的音频
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental
-map 0:v:0 -map 1:a:0 output.mp4
5.合并两个音频
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3
6.获取视频中的音频
ffmpeg -i input.mp4 -vn -y -acodec copy output.m4a
7.去掉视频中的音频
ffmpeg -i input.mp4 -an output.mp4
8.视频转换
ffmpeg -i input.avi output.mp4
9.视频剪切:
下面的命令,可以从时间为00:00:15开始,截取5秒钟的视频。
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
-ss表示开始切割的时间,-t表示要切多少。上面就是从15秒开始,切5秒钟出来。
10.视频截图
ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg //提取图片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪切视频
//-r 提取图像的频率,-ss 开始时间,-t 持续时间
11.视频录制
ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
12.推流
ffmpeg -re -i source.flv -vcodec copy -acodec copy -f flv -y rtmp://127.0.0.1:1935/live/livestream #推rtmp
ffmpeg -re -i cw.ts -vcodec copy -acodec copy -f rtp_mpegts rtp://238.123.46.66:8001 推rtp
ffmpeg -re -i cw.ts -vcodec copy -acodec copy -f mpegts udp://238.123.46.66:8001 推udp
13.推流应用
1、将文件当做直播送至live
ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName
2、将直播媒体保存至本地文件
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
14.将一个JPG图片经过h264压缩循环输出为mp4视频
ffmpeg.exe -i INPUT.jpg -an -vcodec libx264 -coder 1 -flags +loop -cmp +chroma -subq 10 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -flags2 +dct8x8 -trellis 2 -partitions +parti8x8+parti4x4 -crf 24 -threads 0 -r 25 -g 25 -y OUTPUT.mp4
15.将当前摄像头及音频通过DSSHOW采集,视频h264、音频faac压缩后发布
ffmpeg -r 25 -f dshow -s 640×480 -i video=”video source name”:audio=”audio source name” -vcodec libx264 -b 600k -vpre slow -acodec libfaac -ab 128k -f flv rtmp://server/application/stream_name
16.推流
ffmpeg -re -i a.mp4 -c copy -f flv rtmp://192.168.2.169/live?vhost=play/11
-re 按照时间戳顺序推流 不加的话直接把所有文件都推过去
-f 输出格式
-c 音视频格式 copy 与源流一样
17.ffmpeg -re -safe 0 -f concat -i test.txt -vcodec copy -acodec copy -f flv rtmp://xxx
-safe 0 可以用绝对路径,否则只能用相对路径
cat test.txt
file 'a.mp4'
file 'a.mp4'
file 'a.mp4'
18.同时录制音频
ffmpeg -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" av-out.mp4