#include #include "MediaSourceRtsp.h" int main(int argc, char** argv) { if (argc != 4) { printf("Failed\n"); printf("RtspPush [src_rtsp] [out_rtsp] [tcp/udp]\n"); printf("[src_rtsp] input rtsp\n"); printf("[src_rtsp] output rtsp\n"); return 0; } CMediaSourceRtsp pusher; pusher.m_Input_rtsp = std::string(argv[1]); pusher.m_Output_rtsp = std::string(argv[2]); std::string tcporudp = std::string(argv[3]); if ((tcporudp == "TCP") || (tcporudp == "tcp")) pusher.m_TcpOrudp = "tcp"; if ((tcporudp == "UDP") || (tcporudp == "udp")) pusher.m_TcpOrudp = "udp"; if (!pusher.OpenInput(pusher.m_Input_rtsp, pusher.m_TcpOrudp)) { printf("open input_rtsp failed\n"); exit(-1); } if (!pusher.OpenOutput(pusher.m_Output_rtsp)) { printf("open output_rtsp failed\n"); exit(-1); } int ret = -1; while (true) { std::shared_ptr packet = nullptr; packet = pusher.ReadPacket(); if (!packet) { OutputDebugStringA("GetAvPacket ERROR\n"); printf("GetAvPacket ERROR\n"); pusher.ResetConnect(); continue; } if ((packet) && (packet->stream_index == pusher.m_nVideoStream)) { ret = pusher.WritePacket(packet); if (ret < 0) { pusher.CheckOutputNet(); } } } return 0; }