Я уже создал тестовое приложение, которое может отправлять пакеты сообщений по UDP, используя RTP.Теперь я хочу отправить кадры веб-камеры через это соединение.Я могу захватывать отдельные кадры, кодировать их в формат JPEG и отправлять по сети.
Но для этого требуется высокая пропускная способность сети - около 5 Мбит / с для потоковой передачи с разрешением 360p со скоростью обновления 5 кадров в секунду.
Таким образом, теперь я собираюсь использовать 1сек кадров буфера и кодировать их с помощью h264 и отправить его удаленному пользователю, который затем декодирует полученный пакет и отображает полученные кадры.
Я изучал варианты с FFMPEGно не смог найти никакой подходящей документации, которая бы соответствовала моим требованиям.Всегда нужно задействовать FFMPEG.exe, который выведет закодированный файл и сохранит его на локальном диске ... Мне нужно больше походить на то, что я делаю с кодировкой JPEG.
Редактировать: включенный фрагмент кода
RTPUDPv4TransmissionParams transparams;
RTPSessionParams sessparams;
sessparams.SetOwnTimestampUnit(1.0 / 10.0);
sessparams.SetAcceptOwnPackets(true);
transparams.SetPortbase(portbase);
transparams.SetRTCPMultiplexing(true);
status = sender.Create(sessparams, &transparams);
checkerror(status);
RTPIPv4Address addr(destip, destport, true);
status = sender.AddDestination(addr);
checkerror(status);
std::string msg;
for (i = 1; i <= num; i++)
{
printf("\nSending packet %d/%d\n", i, num);
std::cout << "Enter message to be sent: ";
std::getline(std::cin, msg);
// send the packet
status = sender.SendPacket((void *)msg.c_str(), msg.length(), 0, false, 10);
checkerror(status);
status = sess.Poll();
checkerror(status);
RTPTime::Wait(RTPTime(1, 0));
}