代码拉取完成,页面将自动刷新
#include "xop/RtmpServer.h"
#include "xop/H264Parser.h"
#include "net/EventLoop.h"
/*
C++11 智能指针
推流
ffmpeg -re -i aliyun.mp4 -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test
拉流
ffplay -i rtmp://127.0.0.1:1935/live/test
抓包
rtmpt && ((tcp.srcport == 1935 && tcp.dstport == 26367) || (tcp.srcport == 26367 && tcp.dstport == 1935))
rtmpt && ((tcp.srcport == 1935 && tcp.dstport == 26368) || (tcp.srcport == 26368 && tcp.dstport == 1935))
*/
int main(int argc, char **argv)
{
int port = 1935;
printf("rtmpServer rtmp://127.0.0.1:%d\n", port);
printf("你好,世界!\n");
xop::EventLoop eventLoop;//事件循环,循环监控各种事件:触发事件、定时器事件、io事件
auto rtmp_server = xop::RtmpServer::Create(&eventLoop);//eventLoop取地址
rtmp_server->SetChunkSize(60000);
//rtmp_server->SetGopCache(); // enable gop cache
rtmp_server->SetEventCallback([](std::string type, std::string stream_path) {
printf("[Event] %s, stream path: %s\n\n", type.c_str(), stream_path.c_str());
});
//创建socket,监听、接受并处理客户端连接
if (!rtmp_server->Start("0.0.0.0", port)) {
printf("start rtmpServer error\n");
}
//sleep_for: C++11对Linux、Windows等各个平台的sleep函数的封装
while (true) {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
rtmp_server->Stop();
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。