< /li>
Когда короткое видео заканчивается (на EOS), я ищу обратно на предыдущую позицию в длинной видео и воспроизведении. Проблема
Это работает в основном, как и ожидалось, но при переходе с короткого видео на длинное видео с помощью поиска я получаю сломанное или поврежденное изображение в течение 2–3 секунд. После этого воспроизведение возвращается к нормальному.
Код: Выделить всё
v4l2videoenc gstv4l2videoenc.c:1257:gst_v4l2_video_enc_loop: Encoder is producing too many buffersИнтересно, что если я просто ищу в длинном видео, не воспроизводя короткое видео между ними, все работает нормально. Проблема возникает только после EOS короткого видео и возобновления длинного.
Код: Выделить всё
filesrc -> qtdemux -> queue -> h264parse -> nvv4l2decoder -> nvv4l2enc -> rtph264pay -> udpsinkфункция поиска:
Код: Выделить всё
void Sender::seek(gint64 time)
{
QMutexLocker locker(&pipelineMutex);
if (pipelineElement){
GstState state;
gst_element_get_state(pipelineElement, &state, nullptr, GST_CLOCK_TIME_NONE);
qDebug() changePipeline(tempConf);
if(self->senderStatus.mediaTime){
qDebug().noquote() senderStatus.mediaTime);
}
}
break;
case GST_MESSAGE_ASYNC_DONE: {
qDebug() pipelineElement, GST_STATE_PLAYING);
});
break;
}
}
return TRUE;
}
< /code>
что я попробовал < /strong> < /p>
[list]
Настройка состояния трубопровода для готового и обратно перед поиском < /p>
< /li>
intermediate elements like videorate, identity, and queue
[*]Delaying the seek slightly after switching the pipeline
[*]Use omxh264enc alternative of the nvv4l2h264enc
[/list]
Ни одна из этих попыток не решила проблему. Энкодер по -прежнему производит всплеск неожиданных буферов после перехода обратно на длинное видео, а приемник показывает поврежденные кадра в течение этого времени.
Мои вопросы < /p>
Каков правильный способ переключения между двумя видео и возобновляемым оригинальным поиском при использовании nvv4l2h264enc? /> Почему энкодер генерирует слишком много буферов и поврежденных рам после перехода с одного видео на другое? Информация < /p>
jetson < /p>
< /li>
gstreamer версия: 1.14.5 < /p>
< /li>
через rtph264pay to udpsink multicast < /p>
< /li>
< /ul>
Я бы признателен за любые идеи или предложения от других, которые обрабатывали аналогичные воспроизведения видео и сценарии переключения, используя Gstreamer на Jetson. Заранее спасибо.
Подробнее здесь: [url]https://stackoverflow.com/questions/79700915/gstreamer-nvv4l2h264enc-produces-too-many-buffers-and-corrupted-output-after-see[/url]
Мобильная версия