0.概述
最近工作中涉及到一些視頻處理的技術,比如獲取視頻時長、獲取視頻關鍵幀、視頻剪輯等。這裏作一個彙總,後面會持續更新。
1.常用命令
1.0.查看視頻信息
通過ffmpeg -i input.mp4
可以獲取input.mp4的全部信息的文本。如果需要獲取獨立細節,可以通過
1.獲取視頻時長
ffmpeg -i input.mp4 -hide_banner 2>&1 | findstr 'Duration'
其中-hide_banner
選項是用來屏蔽 FFmpeg 標語和其它細節。另外,如果獲取不到視頻的時長信息,有可能是因爲視頻爲直流數據,沒有時間軸,可以通過-c copy
命令選項處理。
2.查看FFmpeg支持的所有格式
ffmpeg -formats
1.1.轉換格式
1.默認轉換
ffmpeg -i input.flv output.mp4
其他格式同理。
2.轉換時保持源視頻質量
ffmpeg -i input.flv -qscale 0 output.mp4
1.2.從視頻中提取音頻
ffmpeg -i input.mp4 -vn output.mp3
1.3.調整視頻分辨率
1.方式一
ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
2.方式二
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4
調整視頻的分辨率會比較耗時。
1.4.壓縮視頻文件
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
1.5.從視頻中提取圖像
1.提取一幀
ffmpeg -ss 50 -i input.mp4 -y -f image2 -vframes 1 output.jpg
-ss
後跟開始時間
2.提取所有關鍵幀到圖片序列
ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.jpg
1.6.視頻剪切
ffmpeg -ss 00:16:00 -t 00:01:00 -i input.mp4 -c:v copy -c:a copy output.mp4
這裏關於視頻和音頻的導出需要使用-c:v copy和-c:a copy,不要使用-vcodec和-acodec。使用後者可能會導致視頻在開頭或是結尾的卡頓。
1.7.設置比特率
ffmpeg -i input.mp4 -b 1.5M output.mp4
設置比特率時,實驗中使用-b 1.5M
後,將38.6MB
的原視頻壓縮到了13.8MB
。
1.8.限制 cpu
ffmpeg -i input.flv -y -threads 1 output.mp4
如果想要降低對cpu的使用,-threads
的值可以往小了給。
1.9.裁剪視頻
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
-filter:v
– 表示視頻過濾器。crop
– 表示裁剪過濾器。w
– 我們想自源視頻中裁剪的矩形的寬度。h
– 矩形的高度。x
– 我們想自源視頻中裁剪的矩形的 x 座標 。y
– 矩形的 y 座標。
1.10.預覽或測試視頻或音頻文件
ffplay input.mp4
類似地,音頻文件也可以使用ffplay
進行播放。
ffplay input.mp3
1.11.視頻播放速度
1.加速播放
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
2.減速播放
ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4
2.Ref
3.版權說明
著作權歸作者所有。
商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
本文作者:Q-WHai
發表日期: 2019年07月16日
本文鏈接:https://qwhai.blog.csdn.net/article/details/99719520
來源:CSDN
更多內容:分類 >> 視頻處理