API Media Recorder сгенерировал webm с плохой кодировкой?

когда я записываю видео с помощью API Media Recorder, загружаю и открываю его с помощью VLC, длина видео неизвестна.

Кроме того, на мобильном устройстве Chrome (52.0.2743.98), если я прочитал его в теге видео, длина не отображается, currentTime всегда будет 0, а ontimeupdate запустится только после окончания видео.

На рабочем столе Chrome (52.0.2743.116) длина не отображается, но ontimeupdate и currentTime работают нормально.

Я записал и скачал видео из демонстрации Google для разработчиков. Видео представляет собой веб-страницу, поскольку кажется, что это единственный тип поддерживается Chrome

Есть идеи ?

Метаданные из ffpmeg:

libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, matroska,webm, from 'test.webm': Metadata: encoder : Chrome Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default) Stream #0:1(eng): Video: vp9 (Profile 0), yuv420p(tv), 480x640, SAR 1:1 DAR 3:4, 30 fps, 30 tbr, 1k tbn, 1k tbc (default) File 'metadata.txt' already exists. Overwrite ? [y/N] y Output #0, ffmetadata, to 'metadata.txt': Metadata: encoder : Lavf56.40.101 Stream mapping: size= 0kB time=--577014:-32:-22.-77 bitrate=N/A video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown


person Titoine    schedule 17.08.2016    source источник
comment
я заметил, что он работает лучше во второй раз, когда он играет на рабочем столе Chrome. я получаю длину в первый раз, но индикатор выполнения прерывистый или, возможно, не работает вообще. видео сложное, и удивительно, что оно вообще работает. вы можете выполнить постобработку файла с помощью ffmpeg, чтобы дать ему больше метаданных, которые позволят ускорить слепой поиск, получить общее время воспроизведения и т. д. вы также можете перейти к концу клипа и вернуться к началу, что может позволить элементам управления видео работать плавно при первом реальном воспроизведении.   -  person dandavis    schedule 18.08.2016
comment
Привет! Это хорошо известная ошибка в Chrome; продолжительность записанного носителя не добавляется в заголовки конечного файла. К сожалению, эта ошибка в настоящее время отмечена командой Chromium как WontFix. Однако есть несколько обходных путей: - На бэкэнде использование ffmpeg для исправления заголовков: ffmpeg -i old.webm output.webm - На внешнем интерфейсе обходной путь на этот ответ или с помощью пакета ts-ebml   -  person ACBM    schedule 08.03.2019
comment
Вам нужно преобразовать этот webm-файл в другой формат, и он будет работать нормально.   -  person kuldeep chopra    schedule 31.05.2021