ShareX записал длинное видео, нельзя быстро перейти к заданному моменту.

Вопрос или проблема

Я увидел, что здесь задаются вопросы, связанные с кодированием и Sharex, и решил задать вопрос на этом портале.

В основном я записывал видео с помощью Sharex 16.1, версия ffmpeg

ffmpeg version n7.0-14-g2d3ee7c069-20240423 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
  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 --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --disable-doc --disable-ffplay --disable-ffprobe --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20240423
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Универсальный медиаконвертер
использование: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Настройки внутри Sharex:

Sharex - Настройки задачи
Sharex - Опции записи экрана

На последнем экране вы можете видеть, что я скопировал дополнительные параметры командной строки для записи с микрофоном.

Я записал 2-часовое видео и был рад “повторить материал на следующий день”, но когда я открыл VLC или media player classic (последняя версия) и хотел переключиться на 1ч05мин видео, это заняло около ~10 минут…

Не уверен, связана ли эта проблема с NVENC (у меня 3770k и GTX1070ti, поэтому я решил использовать GPU, этот CPU перегружен различными программами и задачами) или это просто поведение Sharex.

Казалось очень странным, что записи Sharex не переключаются быстро. В основном, если я перехожу к моменту 1ч05мин, это занимает около ~10 минут. А потом я хочу перейти к моменту 1ч30мин, и это снова займет огромное количество времени.

Словно это видео записывалось с использованием ‘монолитного’ блока, а не ‘чанками’, поэтому переключение занимает огромное количество времени.

Что мне нужно добавить, чтобы переключение работало (думаю, возможно, мне нужно добавить что-то в дополнительные параметры командной строки, как в обычном фильме на YouTube или любом фильме с любого сервиса, например, Netflix?

Или, возможно, я не могу это сделать (маловероятно)?

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

Ответ или решение

Проблема, которую вы описали, связана с длительным временем перехода к определенному моменту в записанном видео, созданном с помощью ShareX и кодека NVENC. Давайте рассмотрим причины этого поведения и предлагаемые решения.

F – Факты

Вы записали видео длительностью 2 часа с помощью ShareX версии 16.1, используя ffmpeg с поддержкой кодека NVENC. При попытке перемотать видео в таких плеерах, как VLC или Media Player Classic, переход к моментам, вроде 1 часа 5 минут, занимает около 10 минут, что является аномально долгим ожиданием.

О – Объяснение

Причина замедленного перехода к нужному моменту может быть связана с тем, как видео закодировано. Если файл записан в режиме монолитного потока, плееру трудно эффективно выполнять произвольный доступ к кадрам, так как он должен последовательно декодировать видео вплоть до заданного временного метки.

R – Рекомендации

  1. Изменение формата записи: Попробуйте изменить кодек или формат, в котором вы записываете видео. Кодек, поддерживающий более эффективное индексирование, может улучшить перемотку. Рекомендуется использовать контейнер формата MP4, который обычно рекомендуют для более быстрого доступа к данным.

  2. Дополнительные параметры командной строки: Вы можете попробовать добавить следующие параметры в строку аргументов при записи:

    • -movflags faststart — Это преводит индекс в начало файла, что улучшает возможность перемотки в потоковом видео.
    • -preset fast или -preset veryfast — Эти пресеты позволят снизить время обработки, но при этом уменьшат автостабилизацию и качество. Можно протестировать разные пресеты для достижения оптимального результата.
  3. Изменение настроек NVENC: Если вы используете NVENC, убедитесь, что используете оптимальные настройки. Параметр -rc:v psv (или -rc:v cbr) может помочь в улучшении сжатия и структуре видео, что иногда влияет на скорость перемотки.

S – Стратегия

Для достижения максимальной эффективности и наилучшего качества полученного видео лучше всего провести несколько тестов. Запишите короткие видео с разными параметрами, чтобы определить, какие настройки лучше всего подходят для ваших нужд. Это может включать в себя изменения настроек кодека, формата контейнера и дополнительных параметров.

T – Тактика

Следуйте этим конкретным шагам:

  1. Измените настройки проектирования в ShareX, чтобы попробовать с разными кодеками и форматами.
  2. Запишите тестовые видео и проверьте скорость перемотки после каждой записи.
  3. Если ни одно из изменений не решит проблему, возможно, стоит рассмотреть запись видео в другой программе с более эффективной кодировкой.

Итог

Вероятнее всего, замедленная перемотка связана с конкретными настройками кодирования и форматом файла. Оптимизация этих аспектов, как указано выше, должна помочь в решении проблемы. Не забывайте тестировать каждую настройку, чтобы найти оптимальные параметры для вашего сценария использования.

Оцените материал
Добавить комментарий

Капча загружается...