1,gstreamer開(kāi)發(fā)手冊,gstreamer官網(wǎng)(這些都不用說(shuō)了吧)
2,gst-launch的用法,這也不用說(shuō)了吧。(白菜,雞蛋,西紅柿,磚頭,鼠標……..)
3,http://blog.chinaunix.net/u/6646/showart_164960.html
lqplayer--基于gstreamer和qt的linux下的簡(jiǎn)單播放器。
實(shí)現了基于QT+GST的一個(gè)播放器。我下載源碼后編譯出現了幾個(gè)BUG,如下:
(1),源碼編譯不通過(guò),media.cpp下有個(gè)地方大概是第54行,g_free(tag_list);,把這個(gè)地方注釋掉,資源沒(méi)有申請到還free,當然出錯了。(此BUG花了我幾十分鐘的時(shí)間)
(2),界面上的按鈕都不能使用,pthread_create(&tid,NULL, cb_run_loop, this);這句要注釋掉,我們的主循環(huán)使用的是QT的主循環(huán),這個(gè)就不必了吧,要不就進(jìn)GST的死循環(huán)了。(這個(gè)小BUG花了我某個(gè)星期六的一個(gè)清晨)
在這里還要說(shuō)一下快放和慢放的問(wèn)題:
gint64 value = m_frontend->sliderTiming->value();
m_speed = m_speed+1;
gst_element_seek (m_pipeline, m_speed, GST_FORMAT_TIME,GST_SEEK_FLAG_FLUSH,
GST_SEEK_TYPE_SET,value * GST_MSECOND*1000 ,
GST_SEEK_TYPE_SET,GST_CLOCK_TIME_NONE);
當m_speed為負值時(shí)可實(shí)現倒放,但是不穩定,僅幾秒鐘就會(huì )出現GST_MESSAGE_EOS。
當m_speed為負值時(shí),我這樣實(shí)現
gst_element_seek (m_pipeline, m_speed,GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
GST_SEEK_TYPE_SET,GST_CLOCK_TIME_NONE ,
GST_SEEK_TYPE_SET, value* GST_MSECOND*1000);
無(wú)非就是調了個(gè)位置,效果好了許多,不妨試一下。(為啥呢,我也不知道,此BUG花了我三四天的時(shí)間)
4,http://www.pierrox.net/dvr/releases/dvr-3.99.4.tar.bz2
基于QT3的,實(shí)現了GST的采集編碼,并保存為avi文件??偢杏X(jué)這東西寫(xiě)的有些地方讓人不爽,又說(shuō)不出是哪里來(lái)。
5,http://blog.chinaunix.net/u3/94516/showart_2269637.html
GStreamer發(fā)送視頻/音頻流至服務(wù)器端并播放、保存。
Client實(shí)現了gstreamer視頻文件的RTP發(fā)送,寫(xiě)個(gè)vlc的配置文件,使用vlc打開(kāi)可以在網(wǎng)絡(luò )上進(jìn)行觀(guān)看(vlc的使用和配置文件使用可以從網(wǎng)上搜一下,還是比較多的),效果還不錯.源碼實(shí)現時(shí)稍顯繁瑣。Decodebin的連接要注意一下。還有就是gstrtpbin的連接要仔細看一下,剛開(kāi)始感覺(jué)有些麻煩,錯誤了好幾次。后來(lái)才明了了。(此功能的源碼實(shí)現花了我一整天的時(shí)間,早9-晚11)
Server端,試了,沒(méi)成功,后來(lái)就沒(méi)仔細看。
6,http://www.since1985i.com/tag/gstreamer
Gstreamer實(shí)現攝像頭采集并顯示。不過(guò)是命令行下的,相對上面RTP網(wǎng)絡(luò )的例子來(lái)說(shuō),這個(gè)用源碼實(shí)現可就是小case了吧。同樣結合上面RTP傳輸的例子,也同樣使用vlc來(lái)播放,就可以實(shí)現網(wǎng)絡(luò )攝像頭。(哇塞,網(wǎng)絡(luò )攝像頭耶!遠程監控耶!攝像頭采集花了我兩個(gè)月的時(shí)間吧,當時(shí)還年輕,后來(lái)發(fā)現是攝像頭的問(wèn)題,當然,這個(gè)也算是BUG,總結經(jīng)驗就是十幾塊的攝像頭是靠不住的)
總結:上面有了攝像頭采集保存的例子,有利用QT+GST實(shí)現播放器的例子,有RTP傳輸的例子,這樣就可以實(shí)現用QT做界面,Gstreamer做后臺的集采集編碼保存,還有本地視頻回放,網(wǎng)絡(luò )視頻監控于一體的DVR軟件了。嗯,功能還挺全的。有意思吧~~
結束語(yǔ):向以上幾位哥們兒致敬。剛開(kāi)始做民工,有你們的分享我很慶幸。
聯(lián)系客服