Проблема отсутствия начального ключевого кадра в медиаплеере VLC приводит к появлению пустого экрана на несколько секунд в начале видео.

Проблема отсутствия начального ключевого кадра в медиаплеере VLC приводит к появлению пустого экрана на несколько секунд в начале видео.

У меня есть видео, в которых отсутствует начальный ключевой кадр. Таким образом, когда я открываю видеофайл с помощью проигрывателя VLC, на экране ничего не происходит до первого ключевого кадра.

Пример изображения:https://i.stack.imgur.com/nBYrR.png(Я не могу добавить изображение к вопросу, так как мне нужно не менее 10 очков репутации.)

Обычно он находит первый ключевой кадр в течение первых 10 секунд и видео начинает воспроизводиться. Затем я могу перемотать и посмотреть первые 10 секунд тоже.

С помощью ffprobe я проверил местоположение и время между ключевыми кадрами.

ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries frame=pkt_pts_time -of csv=print_section=0 5-1601984964095.ts

3610.187967
3620.185489
3630.193133
3640.187944
3650.185311
3660.182822
3670.188500
3680.184133
3690.185078
3700.182911
3710.183367
3720.182778
3730.184022
3740.184567
3750.182689
3760.185767
3770.184700
3780.190100
3790.189033
3800.184422
3810.195578
3820.184767
3830.189644
3840.191533
3850.200800
3860.189211
3870.186956
3880.182989
3890.187878
3900.180167
3910.179522
3920.181411
3930.182022
3940.186422
3950.185778
3960.189856
3970.192444
3980.182833
3990.182367
4000.181000
4010.184000
4020.183622
4030.184178
4040.186367
4050.180144
4060.177833
4070.194067
4080.197444
4090.197700
4100.178944
4110.185444
4120.180544
4130.186956
4140.184967
4150.188178
4160.202444
4170.193300

Я могу решить эту проблему, добавив ключевой кадр в начало видео (во время кодирования). Но решение, которое мне нужно, это решить эту проблему без внесения каких-либо изменений в видео.

Мой вопросКак мне исправить эту проблему? Я должен посмотреть это видео с самого начала! Есть ли настройка в VLC-плеере для воспроизведения видео до первого ключевого кадра? Я перепробовал все настройки VLC, но ничего полезного не нашел.

РЕДАКТИРОВАТЬ: Результат команды ffprobe -show_streams 5-1601984964095.ts, запрошенной @gyan.

>ffprobe -show_streams 5-1601984964095.ts
ffprobe version N-99830-g112fe0ff19 Copyright (c) 2007-2020 the FFmpeg developers
  built with gcc 9.3-win32 (GCC) 20200320
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp
  libavutil      56. 60.100 / 56. 60.100
  libavcodec     58.112.101 / 58.112.101
  libavformat    58. 64.100 / 58. 64.100
  libavdevice    58. 11.102 / 58. 11.102
  libavfilter     7. 88.100 /  7. 88.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
Input #0, mpegts, from '5-1601984964095.ts':
  Duration: 00:09:28.41, start: 3610.187967, bitrate: 1656 kb/s
  Program 1
    Stream #0:0[0x41]: Video: h264 (High 4:2:2) (HDMV / 0x564D4448), yuv422p(tv, bt470bg/smpte170m/bt709, progressive), 720x576 [SAR 1:1 DAR 5:4], 25 fps, 25 tbr, 90k tbn, 50 tbc
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High 4:2:2
codec_type=video
codec_time_base=1/50
codec_tag_string=HDMV
codec_tag=0x564d4448
width=720
height=576
coded_width=720
coded_height=576
closed_captions=0
has_b_frames=2
sample_aspect_ratio=1:1
display_aspect_ratio=5:4
pix_fmt=yuv422p
level=30
color_range=tv
color_space=bt470bg
color_transfer=bt709
color_primaries=smpte170m
chroma_location=left
field_order=progressive
timecode=N/A
refs=1
is_avc=false
nal_length_size=0
id=0x41
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/90000
start_pts=324916917
start_time=3610.187967
duration_ts=51156594
duration=568.406600
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
[/STREAM]

решение1

Если вы потеряли ключевую картинку, то, как правило, предсказание будет нарушено, то есть другие картинки не смогут быть декодированы, и игрок пропустит их.

Есть несколько способов сделать это, в зависимости от ваших требований.

  • Если у вас есть оригинальное видео, то включите последнюю ключевую картинку.доДля начала воспроизведения необходимо.
  • Если у вас есть исходное видео, но вышеперечисленное неприемлемо, вам придется перекодировать видео, чтобы расположить ключевой кадр в начале потока битов.
  • Если у вас нет оригинала, а ключевое изображение действительно безвозвратно утеряно, то вы не сможете воспроизвести предсказанные на его основе изображения, поскольку основная информация, необходимая для их декодирования, будет утеряна.
  • Вы можете обрезать поток битов до следующего ключевого кадра; это не приведет к более раннему началу воспроизведения, но позволит избежать черного (невоспроизводимого) времени в начале.

Связанный контент