LINUX.ORG.RU

Рассинхрон видео/аудио при перемотке mpv/smplayer

 , , ,


0

1

Кажется, попробовал уже все возможные способы, которые удалось найти в интернете, но точно такой же проблемы, как у меня не нашел. В чем она заключается - если открыть любое видео (в моем случае формат .ts 720p), поперематывать на радномные места ролика, а затем, например, вернуться в самое начало ролика, то звук с 99.9% вероятностью будет опережать видео, причем значительно (как будто видео переключилось, а аудио осталось на прошлом месте). В терминал при этом выводится примерно следующее:

Error while decoding frame!
[ffmpeg/video] libopenh264: DecodeFrame failed
Error while decoding frame!
[ffmpeg/video] libopenh264: DecodeFrame failed
Error while decoding frame!
[ffmpeg/video] libopenh264: DecodeFrame failed
Error while decoding frame!
[ffmpeg/video] libopenh264: DecodeFrame failed
Error while decoding frame!
Invalid video timestamp: 255.500000 -> 254.500000

Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).
Consider trying `--profile=fast` and/or `--hwdec=auto-safe` as they may help.

Добавление –profile=fast –hwdec=auto-safe не улучшает ситуацию. Конфигурация компьютера: AMD Ryzen 5 5625U, видеокарта встроенная, fedora linux 40. Драйвер вроде как amdgpu.

Вывод vainfo от обычного пользователя:


Trying display: wayland
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib64/dri-nonfree/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Mesa Gallium driver 24.1.5 for AMD Radeon Graphics (radeonsi, renoir, LLVM 18.1.6, DRM 3.57, 6.9.12-200.fc40.x86_64)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

Вывод vainfo от root:

Trying display: wayland
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
Trying display: x11
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib64/dri-nonfree/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Mesa Gallium driver 24.1.5 for AMD Radeon Graphics (radeonsi, renoir, LLVM 18.1.6, DRM 3.57, 6.9.12-200.fc40.x86_64)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

(почти ничем не отличается кроме ошибки в начале)

Кстати, пробовал xine, там как будто такой проблемы нет, но интерфейс это ужас. Может кто-то знает более стабильные видеоплееры, помимо smplayer, с поддержкой двойных субититров?

P.S. В VLC похожее поведение

Что можно предпринять в данном случае?



Последнее исправление: Savely (всего исправлений: 2)

AMD Ryzen 5 5625U

vaapi не видит h264 декодера, что очень странно.

Должен быть не только декодер, но и энкодер h264, vp9, hevc

Или пинай знатоков федоры, или беги на другой менее огороженный дистрибутив, например, ubuntu

anonymous
()
Ответ на: комментарий от devl547

Аппаратные кодеки есть во встройке ryzen 5000, он уже куплен.

Это скорее всего в федоре пропатчили vaapi, чтобы он видел только свободный декодер vp9 (интересно почему энкодер vp9 не показывают, он тоже свободный)

anonymous
()
Ответ на: комментарий от anonymous

Воу, я не заметил этого! После того, как я понял, чего именно не хватает, я нашел https://rpmfusion.org/Howto/Multimedia (https://www.reddit.com/r/Fedora/comments/1cirw6o/looking_to_get_h264_h26_vaapi_codec_back_onto_my/) и теперь vainfo выглядит так:

Trying display: wayland
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib64/dri-nonfree/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/radeonsi_drv_video.so
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Mesa Gallium driver 24.1.5 for AMD Radeon Graphics (radeonsi, renoir, LLVM 18.1.6, DRM 3.57, 6.9.12-200.fc40.x86_64)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

Что выглядит куда более полно, чем было. И там есть H264))) Теперь я могу перемотать в любое место и это не вызовет рассинхрона. Большое спасибо за ваш ответ!

Savely
() автор топика

И там есть H264))) Теперь я могу перемотать в любое место

Нет тега «fedora», и не сразу понятно, что проблема дистрозависима.

Надо поставить себе галочку на память - «fedora - кодеки». )


upd.

fedora linux 40

Не заметил сразу.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)