Real-Time Messaging Protocol (RTMP) 是一個即時訊息協定通常會用於發送即時串流的影音 Twitch、Facebook 與 Youtube 等等的直播平台都使用此協定在接收串流
RTMP 使用循環播放
而我最近因為要測試 RTMP 的串流使用 FFmpeg 遇到一個問題是影片不夠長需要一直重新執行指定其實滿麻煩的就找了一下 FFmpeg 的文件發現它有提供一個循環(Loop)的指令可以使用
- -stream_loop number (input)
- Set number of times input stream shall be looped. Loop 0 means no loop, loop -1 means infinite loop.
所以假設我們的影片檔名是 sample.mp4
串流目標是 rtmp://live-dfw.twitch.tv/app/{stream_key}
我們就可以使用
ffmpeg -re -stream_loop -1 -i sample.mp4 -vcodec libx264 -acodec aac -f flv rtmp://live-dfw.twitch.tv/app/{stream_key}
RTMP 串流不轉碼
使用的串流目標不需要轉碼我們可以直接使用 -c copy
減少轉碼的負擔
ffmpeg -re -stream_loop -1 -i sample.mp4 -c copy -f flv rtmp://ip:port/live/1234
Wowza 提供的 RTSP 測試串流
在測試上可以使用串流轉發的方法,而串流可以使用 Wowza 提供的 RTSP 串流轉發指令:
ffmpeg -re -i rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov -c copy -f flv rtmp://live-dfw.twitch.tv/app/{stream_key}
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!