響應(yīng)式網(wǎng)站適合用什么框架做龍網(wǎng)網(wǎng)絡(luò)推廣軟件
📚:FFmpeg 提供了豐富的命令行選項(xiàng)和功能,可以用來處理音視頻文件、流媒體等,掌握命令行的使用,可以有效提高工作效率。
目錄
一、視頻轉(zhuǎn)換和格式轉(zhuǎn)換
🔵?將視頻文件轉(zhuǎn)換為另一種格式
🔵?指定視頻編碼器和比特率
二、音頻轉(zhuǎn)換和格式轉(zhuǎn)換
🔵?將音頻文件轉(zhuǎn)換為另一種格式
🔵?指定音頻編碼器和比特率
三、合并視頻和音頻
🔵?合并視頻和音頻流
四、視頻剪切和裁剪
🔵?裁剪視頻
五、視頻截圖和抽取幀
🔵?截取視頻幀
六、 屏幕錄制和實(shí)時(shí)流媒體
🔵錄制桌面
🔵推送實(shí)時(shí)流媒體
七、常用參數(shù)集合
總結(jié)
以下是一些常見的 FFmpeg 命令行用法和示例:
// 一般的 ffmpeg 命令結(jié)構(gòu)如下:ffmpeg [全局選項(xiàng)] [輸入選項(xiàng)] -i 輸入文件 [輸出選項(xiàng)] 輸出文件
一、視頻轉(zhuǎn)換和格式轉(zhuǎn)換
🔵?將視頻文件轉(zhuǎn)換為另一種格式
// 將 input.mp4 文件轉(zhuǎn)換為 output.avi 文件ffmpeg -i input.mp4 output.avi
🔵?指定視頻編碼器和比特率
// -c:v libx264 指定視頻編碼器為 H.264,
// -b:v 1000k 指定視頻比特率為 1000kbit/sffmpeg -i input.mp4 -c:v libx264 -b:v 1000k output.mp4
二、音頻轉(zhuǎn)換和格式轉(zhuǎn)換
🔵?將音頻文件轉(zhuǎn)換為另一種格式
// 將 input.wav 轉(zhuǎn)換為 output.mp3ffmpeg -i input.wav output.mp3
🔵?指定音頻編碼器和比特率
// -c:a libmp3lame 指定音頻編碼器為 MP3(LAME)
// -b:a 128k 指定音頻比特率為 128kbit/sffmpeg -i input.wav -c:a libmp3lame -b:a 128k output.mp3
三、合并視頻和音頻
🔵?合并視頻和音頻流
// -i video.mp4 -i audio.wav 分別指定視頻和音頻輸入文件。
// -c:v copy 表示視頻流直接復(fù)制,
// -c:a aac 指定音頻編碼為 AAC。
// -strict experimental 是為了支持某些 AAC 編碼器ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
四、視頻剪切和裁剪
🔵?裁剪視頻
// 從原視頻中裁剪出5s的視頻
// -ss 00:00:05 指定開始裁剪的時(shí)間(這里是 5s),
// -to 00:00:10 指定結(jié)束時(shí)間(這里是 10s)。
// -c:v copy 和 -c:a copy 表示視頻和音頻流不重新編碼,直接復(fù)制ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c:v copy -c:a copy output.mp4
五、視頻截圖和抽取幀
🔵?截取視頻幀
// -vf "select='eq(n\,100)'" 表示選擇第 100 幀作為輸出。
// -vsync vfr 設(shè)置為可變幀率輸出。
// 輸出文件是 frame.png。ffmpeg -i input.mp4 -vf "select='eq(n\,100)'" -vsync vfr frame.png
六、 屏幕錄制和實(shí)時(shí)流媒體
🔵錄制桌面
// 在linux 系統(tǒng)下進(jìn)行屏幕錄制
// -f x11grab 表示使用 X11 桌面錄制,
// -framerate 30 設(shè)置幀率為 30fps,
// -video_size 1920x1080 設(shè)置視頻尺寸,
// -i :0.0+0,0 是屏幕位置參數(shù)。ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+0,0 output.mp4// 在 Windows 系統(tǒng)上進(jìn)行屏幕錄制
// -f gdigrab:使用 gdigrab 輸入設(shè)備,這是在 Windows 上進(jìn)行屏幕捕獲的一種方法。
// -framerate 30:指定錄制的幀率,可以根據(jù)需要進(jìn)行調(diào)整。
// -video_size 1920x1080:指定錄制的視頻尺寸,這里設(shè)置為1920x1080,你也可以根據(jù)需要調(diào)整。
// -i desktop:指定捕獲整個(gè)桌面。你也可以指定具體的窗口標(biāo)題或坐標(biāo)區(qū)域進(jìn)行捕獲。
// 停止 ctrl + cffmpeg -f gdigrab -framerate 30 -video_size 1920x1080 -i desktop output.mp4
🔵推送實(shí)時(shí)流媒體
// -re 表示以實(shí)時(shí)速率讀取輸入,
// -i input.mp4 指定輸入文件。
// -c:v libx264 和 -c:a aac 分別指定視頻和音頻編碼器。
// rtmp://server/live/streamKey 是推流到的服務(wù)器地址和流名ffmpeg -re -i input.mp4 -c:v libx264 -preset fast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 128k -f flv rtmp://server/live/streamKey
七、常用參數(shù)集合
// 輸入和輸出選項(xiàng):-i 輸入文件:指定輸入文件。
-f 格式:指定輸入或輸出的格式,例如 -f mp4。
-r 幀率:設(shè)置幀率,例如 -r 30。
-s 分辨率:設(shè)置視頻分辨率,例如 -s 1920x1080。// 視頻處理-c:v 編解碼器:指定視頻編解碼器,如 -c:v libx264。
-b:v 比特率:設(shè)置視頻比特率,例如 -b:v 2M。
-vf 濾鏡:應(yīng)用視頻濾鏡,例如 -vf scale=1280:720(調(diào)整分辨率)或 -vf crop=w:h:x:y(裁剪)。// 音頻處理-c:a 編解碼器:指定音頻編解碼器,如 -c:a aac。
-b:a 比特率:設(shè)置音頻比特率,例如 -b:a 192k。
-ar 采樣率:設(shè)置音頻采樣率,如 -ar 44100。// 其他常用選項(xiàng)-ss 開始時(shí)間:從指定時(shí)間開始處理輸入文件。
-t 持續(xù)時(shí)間:設(shè)置處理的持續(xù)時(shí)間。
-map 選項(xiàng):映射輸入流。
-preset 設(shè)置:調(diào)整編碼速度和質(zhì)量之間的平衡。
總結(jié)
這些是常見的 ffmpeg
命令行選項(xiàng)和功能,能夠涵蓋大多數(shù)基本的視頻和音頻處理需求。根據(jù)具體的任務(wù)和需求,可以靈活組合這些選項(xiàng)來完成各種復(fù)雜的視頻處理任務(wù)。