FFmpeg常用命令合集

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
更多內容:分類 >> 視頻處理


4.About me

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章