當前位置:首頁 » 安卓系統 » 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-07-04 23:02:27 瀏覽:518
android微信推送消息推送消息 發布:2025-07-04 22:56:52 瀏覽:383
android分享文件 發布:2025-07-04 22:56:40 瀏覽:401
c語言方程的根 發布:2025-07-04 22:55:33 瀏覽:447
什麼電腦單機游戲好玩又免費配置低 發布:2025-07-04 22:51:27 瀏覽:419
真香配置有哪些 發布:2025-07-04 22:49:05 瀏覽:207
安卓在哪裡找游戲 發布:2025-07-04 22:15:25 瀏覽:243
路由器訪問光貓 發布:2025-07-04 22:07:47 瀏覽:898
資料庫顯示語句 發布:2025-07-04 22:04:30 瀏覽:741
編程課道具 發布:2025-07-04 22:04:02 瀏覽:845