Я не совсем уверен, что знаю, в чем проблема или с чего начать устранение неполадок. На моем CentOS 7 я установил 4.0.1-static https://johnvansickle.com/ffmpeg/
и я пытаюсь перекодировать MKV-файлы в MP4, чтобы я мог использовать Bento4 для фрагментации и Dash/HLS-файлы для воспроизведения. По какой-то причине, когда я перекодирую файл MKV, он не будет воспроизводиться через Dash JS, но у меня нет проблем с перекодировкой файлов MP4. Что странно, когда я конвертирую работающий MP4 в MKV, это работает.
Я не был уверен, что проблема в FFMPEG, поэтому, чтобы выделить его, у меня есть еще одна коробка, на которой установлена Ubuntu с FFMPEG 3.4, и я могу без проблем перекодировать MKV. Поэтому я использовал ту же команду FFMPEG, чтобы перекодировать MKV в MP4 и использовать Bento4, и она работала просто отлично. Таким образом, кажется, что есть проблема с перекодировкой MKV в MP4 с версией 4 ... но не уверен. Я пробовал несколько разных MKV, и каждый дает вопрос.
Вот моя информация FFMPEG:
ffmpeg version 4.0.1-static https://johnvansickle.com/ffmpeg/
Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration:
--enable-gpl
--enable-version3
--enable-static
--disable-debug
--disable-ffplay
--disable-indev=sndio
--disable-outdev=sndio
--cc=gcc-6
--enable-fontconfig
--enable-frei0r
--enable-gnutls
--enable-gray
--enable-libaom
--enable-libfribidi
--enable-libass
--enable-libvmaf
--enable-libfreetype
--enable-libmp3lame
--enable-libopencore-amrnb
--enable-libopencore-amrwb
--enable-libopenjpeg
--enable-librubberband
--enable-libsoxr
--enable-libspeex
--enable-libvorbis
--enable-libopus
--enable-libtheora
--enable-libvidstab
--enable-libvo-amrwbenc
--enable-libvpx
--enable-libwebp
--enable-libx264
--enable-libx265
--enable-libxml2
--enable-libxvid
--enable-libzimg
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Некоторые из вещей, которые я попробовал, пошли в FFMPEG Wiki и установили другую версию через руководство по установке, и получили тот же результат. Когда я загружаю выходной файл напрямую, а не через Dash Player, все работает, но это не тот результат, который я ищу.
Если это поможет, вот ошибка, которую я получаю в браузере:
ERROR DOMException: Failed to read the 'buffered' property from 'SourceBuffer': This SourceBuffer has been removed from the parent media source.
Любые идеи о том, что может вызвать это? Если я не предоставляю правильную информацию, арендуйте, дайте мне знать, и я предоставлю больше.
РЕДАКТИРОВАТЬ
Я удалил FFMPEG 4 и установил последнюю версию RPM ffmpeg version 2.6.8
и все работает нормально. Я хотел бы использовать последние и лучшие, но я думаю, мне придется подождать.
FFMPEG COMMAND
ffmpeg
-i ${DIRECTORY}/temp/master.mkv
-progress ${DIRECTORY}/logs/transcode.log
-s 320x240
-c:v libx264
-b:v 235k
-minrate 235k
-maxrate 235k
-bufsize 470k
-g 120
-keyint_min 120
-sc_threshold 0
-profile:v high
-flags +cgop
-movflags faststart
-preset veryfast
-pix_fmt yuv420p
${DIRECTORY}/temp/ffmpeg_320_240_235.mp4 &> ${DIRECTORY}/logs/ffmpeg.log
Команда фрагмента Bento4
${BENTO4}/mp4fragment
${DIRECTORY}/temp/ffmpeg_320_240_235.mp4
${DIRECTORY}/temp/fragment.mp4 &> ${DIRECTORY}/logs/fragment.log
Bento4 Dashing
${BENTO4}/mp4dash
--verbose
--debug
-o ${DIRECTORY} -f
--mpd-name=episode.mpd
--profiles=on-demand
--rename-media
--media-prefix=media
--exec-dir=${BENTO4}
--hls
--hls-master-playlist-name=episode.m3u8
${DIRECTORY}/temp/fragment.mp4 &> ${DIRECTORY}/segment.log