⑴ vivo手機怎麼截屏
可以三根手指向上滑動屏幕,進行快速截屏。
vivo是專注於智能手機領域的國際化品牌,vivo追求樂趣、充滿活力、專業音質、極致影像、愉悅體驗的智能產品,並將敢於追求極致、持續創造驚喜作為vivo的堅定追求。
2014年vivo品牌的國際化之路全面開啟,除中國大陸市場外,vivo進駐的海外市場包含印度、泰國、緬甸、馬來西亞、印度尼西亞、越南和菲律賓。
2009年,vivo品牌進行全球注冊,迄今已經在全球100多個國家完成注冊。
2011年,vivo品牌正式進入智能手機領域,11月發布智能手機vivo V1,支持SRS音效,音樂手機廣告概念深入人心。
2012年, vivo創建X(巔峰)系列,11月發布當時世界最薄手機(機身6.55mm)的vivo X1,它也是全球第一款整合Hi-Fi級專業晶元的智能手機,開啟vivo在音樂手機領域內的領航者時代。
2012年,vivo冠名江蘇衛視跨年演唱會,強力合作打造跨年之夜。
⑵ srs流媒體伺服器demo不見了 怎麼恢復
這個比較麻煩,需要先從MP4中讀取出H264和音頻裸流,尤其是要注意關鍵幀的查找,然後用librtmp推送給RED5。不知道你為何要這樣做,既然已經是文件了,直接把文件放到RED的相應目錄下面不就可以了么?
⑶ 用SRS快速搭建WebRTC推流和播放
WebRTC目前已經比較成熟了,播放也比較穩定,協議也已經成為了RFC,相應的開源項目也比較多。當然我覺得WebRTC還缺一個高性能簡單易用的伺服器,之前也分析過現有的伺服器,有各種問題,SRS很有機會解決這些問題。
目前SRS對WebRTC的支持進度如下:
相關Wiki:
在線演示,RTMP推流,HTTP-FLV和WebRTC播放:
在線演示,WebRTC推流,WebRTC播放:
自己用SRS搭建WebRTC伺服器,也非常容易,下面是操作步驟。
注意:必須要將本機的IP傳給Docker,否則會推流和播放失敗。
可以直接傳本機IP,例如: 192.168.1.3 。如果覺得直接傳IP比較麻煩,可以用腳本獲取IP。
macOS下執行命令,直接設置IP:
macOS下執行命令,用腳本獲取IP:
CentOS下執行命令,用腳本獲取IP:
啟動後,可以訪問 http://localhost:8080/ ,確認是否啟動成功。
Docker一定要設置對這個IP,否則會出現推流和播放失敗。
演示,WebRTC推流和播放,鏈接:
演示,RTMP推流,WebRTC播放。首先,用FFMPEG或OBS推送RTMP流到伺服器:
可播放的流地址:
⑷ SRS RTMP 發布和播放代碼解析
主程序啟動後,會根據config判斷是控制台模式還是後台運行模式,之後進入run_hybrid_server啟動各種服務,rtmp,http,https,rtc等等服務;
SrsServerAdapter 各種伺服器的適配,rtmp,http,https等,RtcServerAdapter 是webrtc的服務,此篇我們就分析rtmp服務,所以進入SrsServerAdapter後,就會進行各種伺服器的監聽,調用到,後調用
SrsServer::listen() -> SrsBufferListener::listen -> new SrsTcpListener(this, ip, port)
rtmp使用的是tcp,所以就開始監聽tcp了
srs_tcp_listen創建socket並監聽
之後new SrsSTCoroutine("tcp", this)創建協程,調用start會調用SrsTcpListener::cycle();
具體流程是
協程裡面處理accept等待客戶端的連接,客戶端連接請求後,開始回調on_tcp_client,即調用 SrsBufferListener::on_tcp_client()
調用 SrsServer::accept_client
調用fd_to_resource,根據type創建不同的ISrsStartableConneciton,這里rtmp是SrsListenerRtmpStream,所以返回new SrsRtmpConn 而後調用 SrsRtmpConn::start
class SrsRtmpConn : virtual public ISrsCoroutineHandler
所以調用到SrsRtmpConn::cycle(),裡面調用SrsRtmpConn::do_cycle()
開始握手,建立rtmp連接,進入SrsRtmpConn::service_cycle()
建立連接後,設置rtmp
set_window_ack_size
set_peer_bandwidth
set_chunk_size
調用 SrsRtmpConn::stream_service_cycle()
首先進行rtmp->identify_client 客戶端的身份識別
然後再根據不同的客戶端類型type進入不同的分支
SrsRtmpConnPlay 客戶端播流。
SrsRtmpConnFMLEPublish Rtmp推流到伺服器。
SrsRtmpConnHaivisionPublish 應該是海康威視推流到伺服器
SrsRtmpConnFlashPublish Flash推流到伺服器。
我們先看推流 SrsRtmpConnFMLEPublish
首先 start_fmle_publish 創建流
然後進入 publishing
SrsPublishRecvThread rtrd(rtmp, req, srs_netfd_fileno(stfd), 0, this, source, _srs_context->get_id());
err = do_publishing(source, &rtrd);
SrsPublishRecvThread 有
SrsRecvThread trd;
SrsRtmpServer* rtmp;
class SrsRecvThread : public ISrsCoroutineHandler
所以rtrd->start後,會調用SrsRecvThread::cycle()再調用do_cycle()
rtmp->recv_message讀取數據->SrsProtocol::recv_message ->
pumper->consume 調回 SrsRtmpConn::handle_publish_message(SrsSource* source, SrsCommonMessage* msg)
然後調用 process_publish_message
如果是edge邊緣伺服器,直接推流回源到源伺服器
處理audio數據
處理video數據
我們先看處理video數據
SrsCommonMessage* shared_video 轉換為 SrsSharedPtrMessage msg;
mix_correct是混合單增演算法,解決音頻和視頻混合單增的問題
這里沒有設置,就直接走on_video_imp
首先判斷是不是sequence header, 如果是,判斷跟之前的有沒有一樣,一樣,那就只緩存一次,根據源碼可知,音視頻的metadata只發一次,如果有新的拉流端需求,怎樣更新呢?
緩存h264 sequence header, hls分發,dvs分發,forwarders推流等,之後就客戶端消費者分發,如果有客戶端請求播放,那就會有consumer了,就可以進入consumer->enqueue
每個SrsConsumer消費者擁有獨立的SrsMessageQueue* queue隊列。內部隊列實現實際上是SrsFastVector msgs
SrsMessageQueue有數量大小限制,當隊列滿的時候刪除丟棄舊的messages:
隊列大小限制queue_size設置為配置文件中的"queue_length"。如果沒設置則默認#define SRS_PERF_PLAY_QUEUE 30。
max_queue_size = (int)(queue_size * 1000);
推流到此就結束了,而後播放端請求拉流,前面的基本一致,從
srs_error_t SrsRtmpConn::stream_service_cycle()
{
srs_error_t err = srs_success;
}
會走 SrsRtmpConnPlay分支
SrsRtmpConn::do_playing
SrsConsumer::mp_packets
SrsMessageQueue::mp_packets
即前面的SrsMessageQueue* queue裡面取數據了
SrsRtmpServer::send_and_free_messages
⑸ centos 搭建SRS 流媒體服務
啟動 srs
3:生成 /etc/sysconfig/iptables
iptables -P INPUT ACCEPT
4:執行開放埠命令
/sbin/iptables -I INPUT -p tcp --dport 1935 -j ACCEPT
5:保存
iptables-save > /etc/sysconfig/iptables
在重啟之後,最好執行 ./etc/init.d/srs status ,如果顯示 SRS(pid 14203) is running. 則表示啟動成功,而不要只僅僅靠 ps -ef |grep srs 來判斷服務是否開啟
HLS是提供一個m3u8地址,Apple的Safari瀏覽器直接就能打開m3u8地址,譬如:
Android不能直接打開,需要使用html5的video標簽,然後在瀏覽器中打開這個頁面即可,譬如:
HLS的m3u8,是一個ts的列表,也就是告訴瀏覽器可以播放這些ts文件,譬如:
OBS Studio : 直播軟體
VLC media player ,可以播放任何格式的視頻
OBS-Studio版本的使用教程
選中視頻,點擊右鍵,選擇 交換(T) -> 比例適配屏幕(F)
VLC視頻源 - 這個可以選擇一個文件夾,但是 媒體源是只可以選擇一個文件的
當直播開始後,我的直播頁面不要刷新,否則密鑰流地址會變化,導致視頻播放失敗
一切准備就緒後,1.在 我的視頻 頁面點擊 OBS直播,會提示直播成功。這個頁面不能關閉,否則會導致流密鑰無效;
2.OBS軟體點擊 開始推流
⑹ 用SRS搭建WebRTC流媒體伺服器實戰
WebRTC經過這么多年的發展,目前已經比較成熟的協議之一,播放也比較穩定,協議也已經成為了RFC,相應的開源項目也越來越多,但是基於WebRTC協議的部署簡單,性能強悍,功能強大流媒體伺服器的項目還比較稀少。之前了解到的伺服器比如Mediasoup,Janus,Medooze ,要麼就是設計復雜,接入成本要,要麼就是性能較差,還就是多種語言結合,學習成本較高。 而SRS聚焦視頻相關,功能專一,語言使用了高性能的c++,並且支持Rtmp轉Webrtc等其他強大的功能的媒體伺服器。
1.源碼編譯安裝運行SRS
使用這個命令開啟RTC支持
2.SRS常用命令
3.配置nginx代理
若不需要瀏覽器推流,可以不用設置nginx代理,使用localhost訪問
注意:your 代表需要配置你自己的域名信息,由於使用瀏覽器推流必須使用https協議,所以我這邊配置了證書
4.訪問配置的域名
訪問nginx配置的網址 https://webrtc.yourhost.com/
出現如下內容,則服務端架設成功
雖然整片文章看起來不復雜,流程很簡單。但是官網的文檔中的知識點比較分散,所以大家要想快速的搭建的話就參考我這篇文章
⑺ viv0手機怎樣截屏
方法如下:
1、長按手機Home鍵和關機鍵可以進行截屏。
2、在「設置」裡面找到「超級截屏」並開啟,然後回到主界面直接點擊「超級截屏」就可以截屏了。
⑻ 海康威視視頻流和復合流區別
海康威視視頻流和復合流區別有以下幾個方面,具體如下:
1.伺服器不同
海康威視視頻流採用通用的RTSP伺服器,如nginx、SRS或 Darwin Stream Server(原生版本),更有利於私有部署。
海康威視復合流採用通用的RTSP伺服器,如nginx、SRS和 Darwin Stream Server(原生版本),更有利於私有部署。
2.伺服器不同
海康威視視頻流支持H.264的擴展SEI消息發送機制。
海康威視復合流支持H.265的擴展SEI消息發送機制設定,換句話說,之前推送端支持的功能,都可以同步支持。
3.獲取數據方式不同
海康威視視頻流通過採集端,獲取原始的yuv/rgb數據,h.264/h.265編碼打包成需要的格式,如按照rtmp或rtsp打包並發送數據;
海康威視復合流通過拉流端,通過rtsp或者rtmp協議,獲取到數據,並進行音視頻數據parser,然後,解碼,解碼後的原始數據。
⑼ srs獲取錄播的地址
題主是否想詢問「srs怎麼獲取錄播的地址」?
1、首先,打開srs流媒體伺服器軟體,進入主界面,在主界面中點擊docker方式。
2、其次,在docker方式中,找到錄播的地址。
3、最後,找到之後,點擊獲取即可。