我不太确定问题是什么,也不太确定从哪里开始排除故障。在我的 CentOS 7 机器上,我安装了它4.0.1-static https://johnvansickle.com/ffmpeg/
,并尝试将 MKV 文件转码为 MP4,这样我就可以使用 Bento4 来分割文件并使用 Dash/HLS 播放。出于某种原因,当我转码 MKV 文件时,它不会通过 Dash JS 播放,但转码 MP4 文件时没有问题。奇怪的是,当我将可以正常工作的 MP4 转换为 MKV 时,它可以正常工作。
我不确定 FFMPEG 是否是问题所在,因此,为了单独说明,我有另一个安装了 FFMPEG 3.4 的 Ubuntu 盒子,我可以毫无问题地转码 MKV。因此,我使用相同的 FFMPEG 命令将 MKV 转码为 MP4,并使用 Bento4,它工作得很好。因此,似乎将 MKV 转码为 MP4 版本存在问题……但不确定。我尝试了几种不同的 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 命令
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 帅气
${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