前言

安裝
本文主要講解在linux下的使用,因此在linux中安裝執(zhí)行下面命令即可。
代碼語言:JavaScript代碼運行次數(shù):0運行復(fù)制
apt-get install ffmpeg

常用示例
直接將MP4文件轉(zhuǎn)成m3u8:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.mp4 -hls_time 10 -hls_list_size 0 -hls_segment_filename ene_%05d.ts bbskali.m3u8
如果已經(jīng)是ts文件了,則只需要執(zhí)行下方命令即可:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts
將大量分割成ts文件的視頻片段全部轉(zhuǎn)換成mp4視頻片段 — 直接上批處理腳本:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
for %%a in ("D:VideoProjectsNewDemo*.ts") do ffmpeg -i "%%a" -vcodec copy -vcodec copy -f mp4 "D:VideoProjectsNewDemoNewMP4%%~na.mp4"pause
上面的 ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 test.mp4 是將ts文件轉(zhuǎn)換為mp4文件的意思,再在其之上套了一層for循環(huán),%%a就是每個文件,轉(zhuǎn)換命令最末尾的%%~na是將文件保持原來的文件名的情況下進行輸出,存放到指定文件夾的意思。
mp4視頻轉(zhuǎn)flv
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.mp4 -acodec copy -vcodec copy -f flv bbskali.flv
將本地指定的demo.ts文件進行推流:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -re -i demo.ts -c copy -f mpegts udp://127.0.0.1:1997
強制把輸出視頻文件幀率改為 24 fps:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.avi -r 24 output.avi
對視頻每個一秒截一個圖并存在本地:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.mp4 -f image2 -vf fps=fps=1 out%d.png
每隔20秒截一個圖:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.mp4 -f image2 -vf fps=fps=1/20 out%d.png
將視頻轉(zhuǎn)換為圖片,一幀一圖:
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.mp4 out%4d.png
提取視頻文件中的音頻數(shù)據(jù),并保存為文件
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i bbskali.mp4 -vn -acodec copy output.m4a
給視頻添加水印
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i pm.mp4 -i xxx.png -filter_complex "overlay=5:5" out.mp4
把視頻的前30幀轉(zhuǎn)換成一個Animated Gif
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
截取指定時間的縮微圖
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg
將一段音頻與一段視頻混合
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
使用ffmpeg錄像屏幕
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024x768 ~/test.avi
其中,-vd x11:0,0 指錄制所使用的偏移為 x=0 和 y=0,-s 1024×768 指錄制視頻的大小為 1024×768。錄制的視頻文件為 test.avi,將保存到用戶主目錄中
如果你只想錄制一個應(yīng)用程序窗口或者桌面上的一個固定區(qū)域,那么可以指定偏移位置和區(qū)域大小。使用xwininfo -frame命令可以完成查找上述參數(shù)。
重新調(diào)整視頻尺寸大小
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi
把攝像頭的實時視頻錄制下來,存儲為文件
代碼語言:javascript代碼運行次數(shù):0運行復(fù)制
ffmpeg -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf
注:ffmpeg的屏幕錄制功能只能在Linux環(huán)境下有效。
版權(quán)屬于:逍遙子大表哥
本文鏈接:https://cloud.tencent.com/developer/article/1921477
按照知識共享署名-非商業(yè)性使用 4.0 國際協(xié)議進行許可,轉(zhuǎn)載引用文章應(yīng)遵循相同協(xié)議。