構(gòu)架流媒體服務器還是從事跟流媒體音視頻相關(guān)的工作就會發(fā)現(xiàn)ffmpeg一款必備的強大的工具及解決方案鼓寺。
什么是ffmpeg
FFmpeg是一套可以用來記錄打瘪、轉(zhuǎn)換數(shù)字音頻流啄踊、視頻流的解決方案遭殉。它包括了最新的音視頻編解碼庫毡鉴,并提供豐富的音視頻流處理類庫以及強大的流媒體工具崔泵。簡單說,流媒體解決方案就靠它了眨补。
ffmpeg的組成
libavformat:用于各種音視頻封裝格式的生成和解析管削,包括獲取解碼所需信息以生成解碼上下文結(jié)構(gòu)和讀取音視頻幀等功能;
libavcodec:用于各種類型聲音/圖像編解碼撑螺;
libavutil:包含一些公共的工具函數(shù)含思;
libswscale:用于視頻場景比例縮放、色彩映射轉(zhuǎn)換甘晤;
libpostproc:用于后期效果處理含潘;
ffmpeg:該項目提供的一個工具,可用于格式轉(zhuǎn)換线婚、解碼或電視卡即時編碼等遏弱;
ffsever:一個 HTTP 多媒體即時廣播串流服務器;
ffplay:是一個簡單的播放器塞弊,使用ffmpeg 庫解析和解碼漱逸,通過SDL顯示;
常用ffmpeg指令
#ffmpeg切片:用于將大的視頻文件按照hls協(xié)議切片分割
ffmpeg -i 1.mp4 -c copy ?-bsf h264_mp4toannexb -fsegment -segment_list index.m3u8 -segment_time 1 %02d.ts
#ffmpeg壓縮視頻:用于將大的視頻文件按照指定的格式和碼率壓縮
ffmpeg -i 1.mp4 -b 200K -s 640x320 out.mp4
#ffmpeg提取單幀畫面:用于從視頻文件中提取縮略圖
ffmpeg -ss 00:01:06 -i 1.mp4 -f image2 -y thumb.jpg
#ffmpeg提取音頻:用于從視頻文件中分離音頻mp3文件
ffmpeg -i 1.mp4 -f mp3 -vn -y audio.mp3
#ffmpeg推流:用戶將本地視頻或者網(wǎng)絡視頻推向新的流媒體服務器
ffmpeg -re -i 1.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost/live/video
暫時先羅列這些常用指令游沿,后繼陸續(xù)更新饰抒。