Я использую Gstreamer для захвата потока WebRTC в файл webm. Я заметил, что при использовании кодировки VP8 в потоке rtp созданный файл не доступен для поиска ни в каких проигрывателях (например, Chrome или VLC). Под возможностью поиска я подразумеваю, что вы не можете воспроизводить файл из произвольной точки в потоке, он запускается только с самого начала при воспроизведении.
Вместо этого я использовал кодировку h264 с rtp, и полученный файл mp4 доступен для поиска. Кроме того, при удалении кодирования / декодирования rtp создается выходной файл с возможностью поиска для VP8.
Вот тестовые конвейеры для получения этих результатов.
# produces a valid webm file that is not seekable (I need this to be seekable)
gst-launch-1.0 -e \
autovideosrc ! autovideoconvert ! vp8enc ! rtpvp8pay ! rtpvp8depay ! webmmux ! \
filesink location=test.webm
# produces a valid webm file that is seekable
gst-launch-1.0 -e \
autovideosrc ! autovideoconvert ! vp8enc ! webmmux ! \
filesink location=test.webm
# produces a valid mp4 file that is seekable
gst-launch-1.0 -e \
autovideosrc ! autovideoconvert ! x264enc ! rtph264pay ! rtph264depay ! h264parse ! mp4mux ! \
filesink location=test.mp4
Есть ли способ создания записи rtp / VP8 / matroska с возможностью поиска? Это ошибка в Gstreamer?
Я использовал Gstreamer 1.14 и 1.18 на Ubuntu с одинаковыми результатами.