gstreamer ffmpeg gstreamer與ffmpeg的顯示區(qū)別?
gstreamer與ffmpeg的顯示區(qū)別?對于一對真實音頻,GStreamer的輸出單元是包(包括多幀),而ffmpeg的輸出單元是幀。對于Ogg,GStreamer輸出Vorbis數(shù)據(jù)包,包括前三
gstreamer與ffmpeg的顯示區(qū)別?
對于一對真實音頻,GStreamer的輸出單元是包(包括多幀),而ffmpeg的輸出單元是幀。
對于Ogg,GStreamer輸出Vorbis數(shù)據(jù)包,包括前三個頭數(shù)據(jù)包,而ffmpeg只輸出音頻數(shù)據(jù)包,并通過extradata傳輸頭數(shù)據(jù)包。
對于3對FLAC,GStreamer先輸出元數(shù)據(jù)塊,然后輸出數(shù)據(jù)塊;而ffmpeg只輸出數(shù)據(jù)塊
1,需要使用mad解碼插件。因此,需要先安裝gstreamer0.10-plugins-ugly2來編寫MP3播放器。接下來,讓我們看看如何使用GStreamer框架提供的組件來實現(xiàn)一個簡單的MP3播放器。數(shù)據(jù)源元件負責從磁盤讀取數(shù)據(jù),濾波器元件負責對數(shù)據(jù)進行解碼,接收器元件負責將解碼后的數(shù)據(jù)寫入聲卡。如果要在程序中應用GStreamer提供的各種函數(shù),必須首先在main函數(shù)中調(diào)用gstu。Init()完成相應的初始化工作,以便將用戶的輸入?yún)?shù)從命令行傳遞到GStreamer函數(shù)庫。一個典型的GStreamer應用程序的初始化如下:#include
GST launch**
首先需要構(gòu)建一個管道,然后根據(jù)GST launch背后的插件,需要構(gòu)建相應的facetry,像這樣
source=GSTuelementuuufactoryumake(“filesrc”,“filesrc”)
return uvaluuifufail(source,F(xiàn)ALSE)
guprint(“GoodsourceElementn”)
GstElement*rtpmp2tdepay=GSTuelementufactoryumake(“rtpvp8depay”,NULL)
if(!rtpmp2tdepay){
guPrint(“rtpmp2tdepay==nulln”)
}
最后到分流器,建立相應的pad,最后設置狀態(tài)
接收器想在windows PC上看它
我在讀研究生,以前幾乎沒有接觸過網(wǎng)絡傳輸。在閱讀了很長時間的資料之后,最流行的是live555和jrtplib,但是它們都是用C語言編寫的,我的收藏和編碼都是用C語言編寫的。至于ortp和GStreamer,似乎沒有多少人使用它們。
-----解決方案:服務器端使用Live 555和jrtplib,windows推薦使用ditrectshow,Linux推薦使用GStreamer,解碼推薦使用ffmpeg