FFMPEG MKV, вызывающий ошибки в DASH JS
Я получаю следующие ошибки браузера (во всех браузерах) при использовании Dash JS при перекодировании и файла MKV:
ERROR DOMException: Failed to read the 'buffered' property from 'SourceBuffer': This SourceBuffer has been removed from the parent media source.
а также...
dash.all.min.js:26 Uncaught (in promise) DOMException: Failed to load because no supported source was found.
Что странно, у меня нет проблем при перекодировании файла MP4. Я использую FFMPEG вместе с Bento4 для создания файлов MPEG DASH и HLS для моего видеоплеера.
Что я сделал, чтобы выделить FFMPEG, так это перекодировать видео, которое дало мне ошибки на моем тестовом сервере на моем локальном компьютере (который работает), и запустить процесс Bento4 для этого файла. При этом у меня не было проблем и все играло просто отлично.
Я удалил FFMPEG и переустановил его несколько раз, и я всегда получаю один и тот же результат. Я уверен, что что-то напортачило на моем сервере, но, судя по всему, не могу понять, с чего начать с исправления проблемы.
Версия FFMPEG
ffmpeg version N-91321-ge85c608 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
configuration:
--prefix=/root/ffmpeg_build
--pkg-config-flags=--static
--extra-cflags=-I/root/ffmpeg_build/include
--extra-ldflags=-L/root/ffmpeg_build/lib
--extra-libs=-lpthread
--extra-libs=-lm
--bindir=/root/bin
--enable-gpl
--enable-libfdk_aac
--enable-libfreetype
--enable-libmp3lame
--enable-libopus
--enable-libvorbis
--enable-libtheora
--enable-libx264
--enable-nonfree
libavutil 56. 18.102 / 56. 18.102
libavcodec 58. 20.102 / 58. 20.102
libavformat 58. 17.100 / 58. 17.100
libavdevice 58. 4.101 / 58. 4.101
libavfilter 7. 25.100 / 7. 25.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
libpostproc 55. 2.100 / 55. 2.100
Команда FFMPEG
ffmpeg
-i ${DIRECTORY}/${INPUT_FILE}
-progress ${DIRECTORY}/transcode.log
-s 1920x1080
-c:v libx264
-b:v 3000k
-c:a aac
-b:a 32k
-minrate 3000k
-maxrate 3000k
-bufsize 6000k
-g 96
-keyint_min 96
-sc_threshold 0
-profile:v high
-flags +cgop
-movflags faststart
-preset ultrafast
-pix_fmt yuv420p
${DIRECTORY}/ffmpeg_1920_1080_3000.mp4 &> ${DIRECTORY}/ffmpeg.log
Кроме того, я не получаю ошибок, и если я получаю доступ к выходным файлам напрямую, они воспроизводятся просто отлично.
Я уверен, что не включаю всю информацию, необходимую для устранения этой проблемы, поэтому дайте мне знать, если есть лучшая информация, которую я могу предоставить.
Что заставило бы FFMPEG транскодировать MP4, а не MKV?
РЕДАКТИРОВАТЬ И наконец, я преобразовал MKV в MP4, затем использовал вышеуказанную команду, и она заработала. Это как MP4 в MP4 в порядке, но MKV в MP4 сломался.