FFmpeg入坑指南

前言

FFmpeg入坑指南

安裝

本文主要講解在linux下的使用,因此在linux中安裝執(zhí)行下面命令即可。

代碼語言:JavaScript代碼運行次數(shù):0運行復(fù)制

apt-get install ffmpeg
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é)議。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊12 分享