在我的 Panasonic DX650 系列电视上播放 MKV 视频文件后,视频在开始后约 10 分钟开始冻结,但音频和字幕没有问题。在前 10 分钟之前一切都很好,视频播放流畅,10 分钟后,视频看起来像照片幻灯片;帧每 10 秒更改一次,直到视频结束。
我尝试使用 Meteorite v0.11 修复此问题,但没有任何变化。
以下是使用 MediaInfo 的有关 MKV 文件的一些信息:
General
Format : Matroska
Format version : Version 4 / Version 2
File size : 1.41 GiB
Duration : 1 h 42 min
Overall bit rate : 1 958 kb/s
Writing application : mkvmerge v6.6.0 ('The Edge Of The In Between') built on Dec 1 2013 17:55:00
Writing library : libebml v1.3.0 + libmatroska v1.4.1
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 1 h 42 min
Nominal bit rate : 1 765 kb/s
Width : 1 920 pixels
Height : 808 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.047
Writing library : x264 core 135 r2345 f0c1c53
Encoding settings : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=18 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=2pass / mbtree=1 / bitrate=1765 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Default : Yes
Forced : No
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : HE-AAC / LC
Codec ID : A_AAC
Duration : 1 h 42 min
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 kHz / 24.0 kHz
Frame rate : 23.438 FPS (1024 spf)
Compression mode : Lossy
Language : English
Default : Yes
Forced : No
在 Windows 7 中使用 VLC Media Player 播放视频文件没有问题。我也尝试过使用不同的 USB 闪存驱动器、USB 3.0 和外部硬盘;都一样。
是什么原因导致了这个问题?如何解决?
编辑:我尝试了另一个具有以下规格的 MKV 文件,并且播放流畅,但这是一部黑白电影,所以我不确定这是否是一个公平的比较。
第一个 MKV 文件到底有什么问题?
General
Format : Matroska
Format_Version : Version 4 / Version 2
FileSize/String : 2.15 GiB
Duration/String : 1 h 58 min
OverallBitRate/String : 2 607 kb/s
Encoded_Date : UTC 2016-10-04 14:49:32
Encoded_Application/String : mkvmerge v9.2.0 ('Photograph') 64bit
Encoded_Library/String : libebml v1.3.3 + libmatroska v1.4.4
Video
ID/String : 1
Format : AVC
Format/Info : Advanced Video Codec
Format_Profile : High@L5
Format_Settings_CABAC/String : Yes
Format_Settings_RefFrames/String : 4 frames
CodecID : V_MPEG4/ISO/AVC
Duration/String : 1 h 58 min
BitRate/String : 2 500 kb/s
Width/String : 1 920 pixels
Height/String : 1 440 pixels
DisplayAspectRatio/String : 4:3
FrameRate_Mode/String : Constant
FrameRate/String : 23.976 (24000/1001) FPS
ColorSpace : YUV
ChromaSubsampling/String : 4:2:0
BitDepth/String : 8 bits
ScanType/String : Progressive
Bits-(Pixel*Frame) : 0.038
StreamSize/String : 2.06 GiB (96%)
Encoded_Library/String : x264 core 148 r2694 3b70645
Encoded_Library_Settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=18 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=2500 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Default/String : Yes
Forced/String : No
Audio
ID/String : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format_Profile : LC
CodecID : A_AAC
Duration/String : 1 h 58 min
BitRate/String : 105 kb/s
Channel(s)/String : 2 channels
ChannelPositions : Front: L R
SamplingRate/String : 48.0 kHz
FrameRate/String : 46.875 FPS (1024 spf)
Compression_Mode/String : Lossy
Video_Delay/String : 9 ms
StreamSize/String : 88.6 MiB (4%)
Language/String : English
Default/String : Yes
Forced/String : No
Text
ID/String : 3
Format : UTF-8
CodecID : S_TEXT/UTF8
CodecID/Info : UTF-8 Plain Text
Duration/String : 1 h 56 min
BitRate/String : 41 b/s
ElementCount : 1523
StreamSize/String : 35.4 KiB (0%)
Language/String : English
Default/String : No
Forced/String : No
答案1
播放的文件实际上有更高要求比没有的更高,因为平均比特率更高,而且H.264级别。所以并不是你的电视不支持它。这可能是电视解析器中的一个错误,它只会由你尝试播放的特定比特流触发。
您可以尝试重新混合该文件:
ffmpeg -i broken.mkv -c copy output.mkv
这不会改变比特流本身,但如果 MKV 容器中出现问题,它可能会有所帮助。
如果这不起作用,您可以尝试重新编码不起作用的文件:
ffmpeg -i broken.mkv -c:v libx264 -c:a copy -crf 23 output.mkv
这将使用恒定质量编码模式 (CRF),让编码器为您的输入视频选择合适的比特率。如果重新编码的视频质量太低,请选择较低的 CRF(如 18–21)。
然后使用新编码的文件再试一次。