1. 分離音視頻
- 分離視頻:
ffmpeg -i test.mkv -vcodec copy -an test_video.mp4
- 分離音頻:
ffmpeg -i test.mkv -acodec copy -vn test_audio.mp2
2. 解復用
ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
ffmpeg –i test.avi –vcodec copy –an –f m4v test.264
3. 視頻轉碼
ffmpeg -i test.mp4 -vcodec h264 -s 480*480 -an -f m4v test.264
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264
說明: -bf B幀數目控制,-g 關鍵幀間隔控制,-s 分辨率控制
4. 視頻封裝
ffmpeg –i test_video.mp4 –i test_audio.mp2 –vcodec copy –acodec copy test.mkv
5. 視頻剪切
提取圖片:ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg
剪切視頻:
剪切從0:1:30開始時長20s的視頻
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi
剪切從0:1:30開始到0:2:30秒間的視頻
ffmpeg -i input.avi -vcodec copy -acodec copy -ss 0:1:30 -to 0:2:30 output.avi
6. 視頻錄制
ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
7.疊加水印
使用命令:ffmpeg -i Titanic.mkv -vf "movie=test.PNG,scale=100:150[watermask];[in][watermask] overlay=100:100[out]" -y Titanic.mp4
scale
:水印的大小
overlay
:水印的位置
8.將MP3轉換為PCM數據
ffmpeg -i test.mp3 -f s16be -ab 192 -ar 44100 test.pcm
9. 推送RTP流、接收RTP流並存為ts文件
- 推送RTP流
ffmpeg -re -i 4kp30_avc.mp4 -an -c copy -f rtp rtp://192.168.25.89:5004 > rtp.sdp
- ffplay 接收rtp流
ffplay.exe -protocol_whitelist "udp,tcp,http,https,file,rtp" rtp.sdp
- ffmpeg 接收rtp流,並存為ts文件
ffmpeg -protocol_whitelist "udp,tcp,http,https,file,rtp" -i rtp.sdp -c copy 4kp30_avc.ts
10. ffmpeg 編碼
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg4 bus_cif.avi//avi
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg2video bus_cif.VOB//dvd
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec wmv1 bus_cif.wmv//wmv
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec h264 bus_cif.mp4//mp4
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec flv bus_cif.flv//flv
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec rv10 bus_cif.rm//rm
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec vp9 bus_cif.webm//webm
11. ffmpeg 解碼
ffmpeg -i test1.h264 -c:v rawvideo -pix_fmt yuv420p test1.yuv
12. 截取 YUV
從第0幀開始截取30幀
ffmpeg -s widthxheight -i input.yuv -c:v rawvideo -filter:v select="between(n\, 0\, 29)" out.yuv
根據時間截取幀(截取從第10秒到第20秒)
ffmpeg -s widthxheight -i input.yuv -c:v rawvideo -filter:v select="between(t\, 10\, 20)" out.yuv
13. 壓縮分辨率
ffmpeg -i 1080_60i.ts -s 720x576 720x576.ts
14. ffplay 播放YUV
ffplay -f rawvideo -video_size 1280x720 -pix_fmt nv12 test.yuv
需要指定的參數:
1. -video_size 指定yuv的寬高
2. -pix_fmt 指定yuv的格式
yuv的格式名可以通過 ffplay -pix_fmts來查詢
15. ffplay 播放PCM
ffplay -ar 44100 -channels 1 -f s16le -i test.pcm
需要指定的參數:
1. -ar pcm的采樣率
2. -channels pcm的通道數
3. -f pcm的格式
pcm的格式可以通過ffplay -sample_fmts來查詢
16. 將 PCM 數據編碼為 AC3
ffmpeg -y -f s16le -ac 1 -ar 44100 -acodec pcm_s16le -i audio_1.pcm test.ac3