當前位置:首頁 » 安卓系統 » live555forandroid

live555forandroid

發布時間: 2023-04-05 05:37:55

❶ Android 中實時獲取戶外監控攝像頭的視頻信息怎麼做

Android中實時獲取戶外監控攝像頭的視頻信息的方法為:
1、使用FFMpeg進行視頻採集,使用Live555進行RTP傳輸,使用VideoView進行播放。
csdn提到:重載FrameSource,寫一個服務類,可以從FrameSource的派生類讀取幀數據,轉發給live555.
評價:本方案大型訪問量大的不行,少量連接比如100以內的可以。
2、用gstreamer完成採集、編碼、組播。客戶端使用VideoView進行播放。
評價:本方案優點為可以實現大訪問量。缺點是基本從底層架構,代碼量比較大。
3、使用FFmpeg進行視頻採集,使用ffserver進行視頻轉發,客戶端使用VideoView播放。
評價:優點是實現簡單、容易演示,缺點是實時性不好以及用戶量大不行。

❷ live555推送1080p花屏

最近一直研究live555推送rtsp流到easydarwin,實現轉發,但是遇到一個問題:live555推送之後的視頻流出現花屏,在網上搜羅一大圈之後找到一個答案,就是live555內部OutPacketBuffer默認大小隻有60000,即是unsigned OutPacketBuffer::maxSize = 60000;當我推送1080p視頻流的時散橡候,用vlc播放,出現部分視頻是花的,主要就是緩沖區太小了,將這個值改大一點即可,目前測試改成288000,視頻不會出現花屏,問題完美解決。

1、大數據幀花屏

live555推送之後的視頻流出現花屏,查看源碼DynamicRTSPServer.cpp文件,源碼如下:

   sms->addSubsession(::createNew(env, fileName, reuseSource));

  } else if (strcmp(extension, ".264") == 0) {

    // Assumed to be a H.264 Video Elementary Stream file:

    NEW_SMS("H.264 Video");

    OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.264 frames

    sms->addSubsession(::createNew(env, fileName, reuseSource));

  } else if (strcmp(extension, ".265") == 0) {

    // Assumed to be a H.265 Video Elementary Stream file:

    NEW_SMS("H.265 Video");

    OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.265 frames

    sms->addSubsession(::createNew(env, fileName, reuseSource));

  } else if (strcmp(extension, ".mp3") == 0) {

    // Assumed to be a MPEG-1 or 2 Audio file:

    NEW_SMS("MPEG-1 or 2 Audio")

查看上面紅色部分對於H264和H265輸出包最大緩沖100000位元組(100K),對於高清視頻緩沖區太小了,必需更改大些。目前更改到沖雹旁800000,對於1080P視頻使用VLC播放時,不會再出現花屏。

2、循環播放文件

在liveMedia庫下的ByteStreamFileSource.cpp文件中的95行,找到

void ByteStreamFileSource::doGetNextFrame() {

  if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) {

    handleClosure();

    return;

  }

更改為

void ByteStreamFileSource::doGetNextFrame() {

  if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) {

    //handleClosure();

    //肆賀return;

  fseek(fFid, 0, SEEK_SET);

  }

主要思想為,當文件讀完後不讓關閉文件,而是重新讀取文件。經過測試,當VLC關閉RTSP鏈接後,文件會關閉,重新打開其他文件不受影響。

❸ 請問RTSP一定要使用AAC格式來做live audio streaming嗎

你好!!!真的很感謝你的回覆!!!我接觸Android不久我參考Spydroid,在手機上建起了RTSP
ServerSpydroid原本的作法是
從mic讀取PCM
->
編碼成AAC
->
封裝成RTP封包
->
傳送我的想法
從手機本地讀取mp3或wav
->
封裝成RTP封包->
傳送那在請問,同樣都是RTSP
Streaming,Spydroid跟Live555在效率上會有差別嗎?因為我嘗試編出Live555的so檔案,但不知道要如何調用Live555讓RTSP
Server開啟...想回到Spydroid,試著直接將mp3不編碼,直接封裝到RTP封包,在做傳送所以不知道該使用哪個想法比較好...

熱點內容
怎麼進網站伺服器 發布:2025-09-17 09:18:15 瀏覽:460
小火箭伺服器訂閱是什麼 發布:2025-09-17 09:01:40 瀏覽:735
c語言入門基礎 發布:2025-09-17 08:54:30 瀏覽:667
副卡服務密碼是多少位 發布:2025-09-17 08:45:44 瀏覽:438
白條密碼是什麼情況 發布:2025-09-17 08:43:01 瀏覽:319
高中信息演算法與程序 發布:2025-09-17 08:41:34 瀏覽:26
伺服器禁止設置幾個ip 發布:2025-09-17 08:41:26 瀏覽:504
側限壓縮儀 發布:2025-09-17 08:41:24 瀏覽:174
php登陸系統 發布:2025-09-17 08:35:55 瀏覽:420
wincc全局腳本中加減運算 發布:2025-09-17 08:05:48 瀏覽:338