Мне нужно транспортировать некоторые данные из дрона с помощью Ffmpeg. Данные включают в себя данные кадра и некоторые другие параметры, такие как валик синхронизации/шаг/высота/направление дрона, и когда я получаю образ кадра, также должны быть выведены соответствующие параметры, поэтому я решил отправить эти параметры в виде SEI. Тогда вопросы приходят после отправки Sps ПФС, я посылаю свой собственный SEI пакет, например:Транспорт SEI с Ffmpeg
if(pkt->size>10&&pkt->data[0] ==0
&&pkt->data[1] ==0
&&pkt->data[2] ==0
&&pkt->data[3] ==1
&&(pkt->data[4] == 103 || pkt->data[4] == 104)){
i++;
}
AVPacket *newPacket = nullptr;
// 0 0 0 1 6 8*16
if(i == 2){
i = 0;
newPacket = (AVPacket *)av_malloc(sizeof(AVPacket));
av_init_packet(newPacket);
newPacket->data = new uint8_t[8];
newPacket->data[0] = 0;
newPacket->data[1] = 0;
newPacket->data[2] = 0;
newPacket->data[3] = 1;
newPacket->data[4] = 6;
newPacket->data[5] = 123;
newPacket->data[6] = 134;
newPacket->data[7] = 128;
newPacket->size = 8;
}
av_write_frame(*it , pkt);
av_free_packet(pkt);
if(newPacket){
av_write_frame(*it , newPacket);
av_free_packet(newPacket);
}
Но, На приемном кончить, я только найти API: API av_read_frame.The только декодировать каждый полный кадр из AVFormatContext.My SEI ничего не выйдет! Кроме того, я также пытаюсь поместить мои параметры в side_data или метаданные AVFrame, но после tt-трансляции rtp полученные боковые_данные и метаданные AVFrame снова будут 0x00. Может ли кто-нибудь дать мне некоторую мысль?