플러터에서 RTMP 서버로 Publish 할 수 있는 라이브러리나 정보가 최근 것이 너무 적어 큰 어려움을 겪었다 ㅠㅠ 라이브러리 이것저것 다 시도해보다가 결국 되는 걸 발견했다!
일단 여기서 친절하게 제공해주신 example앱을 클론 받아서 테스트했다. 카메라 테스트를 위해서 실제 아이폰을 사용해서 테스트했다. 이때, xcode 설정을 잘 확인해주자.
해당 프로젝트 터미널에서 open ios/Runner.xcworkspace
로 xcode를 열고
연결되어 있는 디바이스를 확인하고
Runner의 Signing & Capabilities에서 Team과 Bundle Identifier를 잘 확인해준다.
실제 아이폰을 연결하는 레퍼런스는 많이 나와 있어서 다행이다. 참고
이제 깃 클론 받은 flutter 프로젝트에서 main.dart가 있는 example 폴더에 들어가 flutter run을 해준다.
그랬더니 다음과 같은 에러가 발생했다.
Event{type: Name(rawValue: "ioError"),bubbles: false,data: nil,target: Optional(ApiVideoHaishinKit.RTMPConnection)} 2022-15-08 22:32:39.604 [Warn] [com.haishinkit.HaishinKit]
[RTMPSocket.swift:104] didTimeout() > connection timedout
이 것 때문에 또 엄청 고생하다가 결국 원인을 발견했는데 ec2 인바운드 규칙에 1935번 포트 허용을 해서 해결할 수 있었다!! → 참고
오류 해결 후 flutter run을 하니 연결 성공!!
모바일(flutter) -> rtmp서버로 publish하기 위한 설정
1. ufw(방화벽) 1935번 포트 허용
2. nginx.conf에서 rtmp 모듈 설정에 listen 1935; 추가
3. EC2 보안그룹에 TCP 1935번 포트 허용 인바운드 규칙 추가