MediaSourceMain.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. 
  2. #include <windows.h>
  3. #include "MediaSourceRtsp.h"
  4. int main(int argc, char** argv)
  5. {
  6. if (argc != 4) {
  7. printf("Failed\n");
  8. printf("RtspPush [src_rtsp] [out_rtsp] [tcp/udp]\n");
  9. printf("[src_rtsp] input rtsp\n");
  10. printf("[src_rtsp] output rtsp\n");
  11. return 0;
  12. }
  13. CMediaSourceRtsp pusher;
  14. pusher.m_Input_rtsp = std::string(argv[1]);
  15. pusher.m_Output_rtsp = std::string(argv[2]);
  16. std::string tcporudp = std::string(argv[3]);
  17. if ((tcporudp == "TCP") || (tcporudp == "tcp"))
  18. pusher.m_TcpOrudp = "tcp";
  19. if ((tcporudp == "UDP") || (tcporudp == "udp"))
  20. pusher.m_TcpOrudp = "udp";
  21. if (!pusher.OpenInput(pusher.m_Input_rtsp, pusher.m_TcpOrudp)) {
  22. printf("open input_rtsp failed\n");
  23. exit(-1);
  24. }
  25. if (!pusher.OpenOutput(pusher.m_Output_rtsp)) {
  26. printf("open output_rtsp failed\n");
  27. exit(-1);
  28. }
  29. int ret = -1;
  30. while (true) {
  31. std::shared_ptr<AVPacket> packet = nullptr;
  32. packet = pusher.ReadPacket();
  33. if (!packet) {
  34. OutputDebugStringA("GetAvPacket ERROR\n");
  35. printf("GetAvPacket ERROR\n");
  36. pusher.ResetConnect();
  37. continue;
  38. }
  39. if ((packet) && (packet->stream_index == pusher.m_nVideoStream)) {
  40. ret = pusher.WritePacket(packet);
  41. if (ret < 0) {
  42. pusher.CheckOutputNet();
  43. }
  44. }
  45. }
  46. return 0;
  47. }