您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
解決avformat_open_input出現(返回錯誤(code為99(-99))Cannot assign requested address的問題)及拉流的完成
发布时间:2022-04-24 21:34:09编辑:雪饮阅读()
自上次推流功能開發完成后,接著整合拉流。
拉流目前好像是有兩種解決方案,這第一種是仍然用ffmpeg,第二種聽説直接用webview中的video標簽就能實現,不過第二種個人感覺第一種方案更好,如果有空可以再研究下第二種。
拉流要注意的地方其實聼多的,今天這裏重點記錄下avformat_open_input返回錯誤碼為-99的問題,對應的描述為Cannot assign requested address。
若你能去百度你會發現基本都是服務器端去解決,什麽time_wait空閑占用過多之類的,但是我這裏在推流拉流期間用服務器netstat查看到並沒有出現time_wait。
那麽實際的解決辦法在我這裏是:
av_dict_set(&dictionary, "rw_timeout", "5000000", 0);
這裏的重點是rw_timeout,我之前設置的是timeout.
然後還有就是
av_register_all好像要在該函數的下一行即下一語句就要執行,不過這個我不是非常贊同,感覺好像扯不上什麽關係。
不過謹慎起見,我這裏也是執行了的。
還有一點就是我之前做推流的時候都是用單例的,這裏今天被坑了,在c++拉流回調過來后發現某些屬性不存在了,實際上單例也是可以用的,只是之前太嬾有些代碼直接複製過來稍微修改下,有些細節沒有考慮到,導致重複實例化,而重複實例化后並沒有拿到之前實例化后的對象的屬性。
最後一切ok后ffmpeg負責像我們之前的哪臺rtmp服務端推流,然後我們安卓端負責拉流。
关键字词:avformat_open_input,99,Cannot assign requested address
上一篇:CMake Error錯誤(add_library)Cannot find source file在android studio中的解決
下一篇:ffmpeg命令行推流向nginx的rtmp模塊推流出現錯誤Failed to update header with correct duration的解決