Opened 3 years ago

Closed 3 years ago

#8805 closed defect (fixed)

ffplay: Cannot use arrow keys to move backward/forward in AVS2 encoded MKV video.

Reported by: ourseews Owned by:
Priority: wish Component: undetermined
Version: git-master Keywords: MKV AVS2 seek
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


Summary of the bug:

How to reproduce:

ffmpeg -I xxxx.mp4 -vcodec avs2 -acodec copy xxxx.mkv
ffplay  xxxx.mkv

then use arrow keys to move forward/backward while video is playing.

error message:
xxxx.mkv: error while seeking

ffplay version:
ffplay version N-98486-gd11cc743c8-ffmpeg-windows-build-helpers Copyright (c) 2003-2020 the FFmpeg developers
  built with gcc 10.1.0 (GCC)
  configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w32threads --arch=x86_64 --target-os=mingw32 --cross-prefix=/home/hgfk/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --enable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libdavs2 --enable-libxavs2 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa --enable-libopenjpeg --enable-libopenh264 --enable-liblensfun --enable-libvmaf --enable-libsrt --enable-demuxer=dash --enable-libxml2 --enable-opengl --enable-libdav1d --enable-cuda-llvm --enable-libaom --enable-libvpx --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-libs=-lm --extra-libs=-lpthread --extra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCACA_STATIC --enable-amf --enable-libmfx --enable-gpl --enable-frei0r --enable-filter=frei0r --enable-librubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxavs --enable-avresample --extra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-shared --disable-static --prefix=/home/hgfk/ffmpeg-windows-build-helpers/sandbox/win64/ffmpeg_git_shared
  libavutil      56. 55.100 / 56. 55.100
  libavcodec     58. 96.100 / 58. 96.100
  libavformat    58. 48.100 / 58. 48.100
  libavdevice    58. 11.101 / 58. 11.101
  libavfilter     7. 87.100 /  7. 87.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100

Attachments (1)

xxxx_AVS2.mkv (1.8 MB ) - added by ourseews 3 years ago.
added AVS2 encoded MKV input file.

Download all attachments as: .zip

Change History (7)

comment:1 by Steven Liu, 3 years ago

Priority: importantwish

Can you leave a reference or which specification describe about the AVS2 codec in MP4?

comment:2 by Carl Eugen Hoyos, 3 years ago

Component: ffplayundetermined
Keywords: seek added; move forward backward removed

Please provide a sample input file.

by ourseews, 3 years ago

Attachment: xxxx_AVS2.mkv added

added AVS2 encoded MKV input file.

in reply to:  1 comment:3 by ourseews, 3 years ago

Replying to stevenliu:

Can you leave a reference or which specification describe about the AVS2 codec in MP4?

AVS2 encoder:libxavs2 decoder:libdavs2. parser:avs2_parser.c.

comment:4 by Jun Zhao, 3 years ago

I think we don't have a spec for AVS2 in MKV if we want to fix this issue

Last edited 3 years ago by Jun Zhao (previous) (diff)

comment:5 by mkver, 3 years ago

  1. xavs_encode_frame() in libxavs2 does not mark any packets as key frames and therefore the video track of the Matroska file does not contain any block marked as keyframe block. So it is no wonder that seeking doesn't work. One should probably set the flag based upon the outpacket type.
  2. There is actually no codec mapping for AVS2; the Matroska muxer therefore uses the avi compability mode ("Video for Windows") to mux it. I don't know whether there is an official AVS2 avi packetization or whether this is just a FFmpeg only thing.

comment:6 by ourseews, 3 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.