ffmpeg版本号 3.1.2,以下操作都是亲自实践过:
1. 推流到rtmp服务器
ffmpeg -re -i BigBuckBunny.mp4 -c copy -f flv rtmp://10.15.40.2/liveshow/test
2. 从rtmp服务器dump文件
ffmpeg -i rtmp://10.15.40.5/liveshow/pc_pc_for_pc_second_master_1510536339_4615 -c copy test.mp4
3. 从音视频文件中抽取视频
ffmpeg -i test.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 320x180.h264
4. 视频格式转码
ffmpeg -i test.mp4 -s 176x144 -b:v 40k -r 10 -g 10 -vcodec libx264 -profile:v baseline -ab 8k -ar 8000 -ac 1 -acodec aac BigBuckBunny_176x144_baseline1.mp4
视频码率40k,fps 10, GOP 10, baseline profile;音频aac,1声道, 8k采样率, 8k码率
5. 视频片断拼接:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy final_file_name
其中filelist.txt为要拼接的文件列表,内容格式如下:
file BigBuckBunny_176x144_baseline_1.mp4
file BigBuckBunny_176x144_baseline._1mp4
file BigBuckBunny_176x144_baseline_1.mp4
6. 组合A的视频和文件B的音频
ffmpeg -i $fileName -i $confVideo -map 0:v -map 1:a -vcodec libx264 -r 30 -b:v 1600k $targetFile
将fileName的视频轨道和confVideo的音频轨道抽取出来,编码成新的文件 targetFile
7. 提高wave的采样率:
ffmpeg -i reliao_test_one.wav -ab 50k -ar 48000 -ac 1 reliao_test_one_48k.wav
8. 变wav为pcm:
ffmpeg -i reliao_test_one_48k.wav -f s16le -acodec pcm_s16le reliao_test_one_48k_s16le.pcm
9. 视频画中画(跳动)
ffmpeg -i video1.mp4 -i video2.mp4 -y -filter_complex "[1:v]scale=240:320[scale];[0:v][scale] overlay=x='if(gte(mod(t,4),2),W-w,0)':y='if(gte(mod(t,8),4),0,H-h)' [out]" -map "[out]" -map 0:a -c:v libx264 -c:a copy output.mp4
10. 视频蒙版
ffmpeg -i video.mp4 -i mask.png -y -filter_complex "[0:v][1:v] overlay=(W-w)/2:(H-h)/2 [v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy out.mp4
11. 读取Windows上视频设备:
ffmpeg.exe -list_devices true -f dshow -i dummy
12. 读取摄像头支持的Mode:
ffmpeg.exe -f dshow -list_options true -i video="HD Pro Webcam C920"