1

I'm trying to play a WebM VP9 video file. The media player says the video is not seekable.

That means, I can't jump to a different time or skip back and forth a couple of seconds. Every time I play the video, I have to start from the beginning. I can pause playback and continue. But if the video is stopped, I have to watch from the start again.

Is there an open source tool like FFmpeg that can be used to make the video seekable? How to do that?

So far I have tried ts-ebml for Node.js (suggested here What is correct parameters for opus webm audio to seekable with ffmpeg?):

Linux

ts-ebml -s not_seekable.webm | cat > seekable.webm

Windows

ts-ebml -s not_seekable.webm | type > seekable.webm

It doesn't work with files greater than 2 GB.

Syntax error.
node:fs:419
      throw new ERR_FS_FILE_TOO_LARGE(size);
      ^

RangeError [ERR_FS_FILE_TOO_LARGE]: File size (27933740002) is greater than 2 GB
    at new NodeError (node:internal/errors:371:5)
    at tryCreateBuffer (node:fs:419:13)
    at Object.readFileSync (node:fs:464:14)
    at Object.<anonymous> (C:\Users\Nathan Bauer\AppData\Roaming\npm\node_modules\ts-ebml\lib\cli.js:24:18)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'ERR_FS_FILE_TOO_LARGE'
}

I have analyzed the video file I'm referring to using ffprobe:

D:\>ffprobe testvideo.webm

Maybe the information is helpful. This is the console output:

ffprobe version 2022-02-24-git-8ef03c2ff1-full_build-www.gyan.dev Copyright (c) 2007-2022 the FFmpeg developers
  built with gcc 11.2.0 (Rev7, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      57. 21.100 / 57. 21.100
  libavcodec     59. 21.100 / 59. 21.100
  libavformat    59. 17.102 / 59. 17.102
  libavdevice    59.  5.100 / 59.  5.100
  libavfilter     8. 27.100 /  8. 27.100
  libswscale      6.  5.100 /  6.  5.100
  libswresample   4.  4.100 /  4.  4.100
  libpostproc    56.  4.100 / 56.  4.100
[matroska,webm @ 000001d61d73f6c0] Element at 0x7a5 ending at 0x7bd exceeds containing master element ending at 0x7ac
[matroska,webm @ 000001d61d73f6c0] Duplicate element
[matroska,webm @ 000001d61d73f6c0] Element at 0x13ed ending at 0x1406 exceeds containing master element ending at 0x13f4
[matroska,webm @ 000001d61d73f6c0] Duplicate element
[matroska,webm @ 000001d61d73f6c0] Element at 0x56 ending at 0x16a6 exceeds containing master element ending at 0x1402
[matroska,webm @ 000001d61d73f6c0] 0x00 at pos 101 (0x65) invalid as first byte of an EBML number
[matroska,webm @ 000001d61d73f6c0] 0x00 at pos 131515 (0x201bb) invalid as first byte of an EBML number
Input #0, matroska,webm, from 'testvideo.webm':
  Duration: N/A, start: 5.000000, bitrate: N/A
  Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, bt709), 3840x2160, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 1k tbn (default)
  Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
  • Please edit your original question rather than reposting it – Mokubai Feb 27 '22 at 17:15
  • Also note that "is there a tool that..." questions are off topic here because it is asking us to recommend products. – Mokubai Feb 27 '22 at 17:15
  • Related, possible dupe: [Seek Issues in WebM (VP8 IVF/OGG) File](https://superuser.com/questions/489015/seek-issues-in-webm-vp8-ivf-ogg-file) – Mokubai Feb 27 '22 at 17:30
  • Sorry for reposting. I wasn't aware that it was possible to edit a question that was already closed. But I find it weird to consider this a duplicate of a 10 year old question. This is a Q&A network about computers. Technology is advancing faster than ever. The old video format is outdated and maybe there are new answers in the meantime. Also, a question might ask for other details even though it's on a similar topic. Even though "is there a tool" might be off-topic, from what I've seen it's common practice. Many answers recommend certain tools and I think that's useful. – randomStack847 May 29 '22 at 20:52
  • The question that this is marked as a duplicate of is your own (now deleted) original question. The question i linked in a comment as "Related, possible dupe" is what I thought might be vaguely related due it it seemingly being a similar issue. It was linked expecting you to have a look and clarify whether the information was useful and if not for you to say why. Often having trouble in one container can be alleviated by remuxing in a better container, for example by using the commands linked in the duplicate and modifying to suit your needs. – Mokubai May 29 '22 at 21:02
  • As a quick example `ffmpeg -i not_seekable.webm -vcodec copy -acodec copy seekable.webm` might just fix your container. – Mokubai May 29 '22 at 21:04
  • another answer there suggest `mkclean` as a potential option https://superuser.com/a/1019455/19943 so have you tried that? *"[mkclean is a command line tool](https://www.matroska.org/downloads/mkclean.html) to clean and optimize Matroska (.mkv / .mka / .mks / .mk3d) **and WebM (.webm / .weba)** files that have already been muxed."* What happened? Did it make it worse? Did it delete everything on your computer? What exactly have you tried? – Mokubai May 29 '22 at 21:05
  • As to software recommendations, they are explicitly off topic per our [on topic page](https://superuser.com/help/on-topic). We accept people providing software as a solution to a problem, but you just saying "gimme a piece of software to fix my thing" is not allowed because it takes away from you telling us what your problem is and what you've tried. As a minimum the answer is "yes, there is a tool like `ffmpeg` that can remux your video and it is called `ffmpeg`." So the better question might be "I tried this command in `ffmpeg` and it didn't work, do you know how I can fix it?" – Mokubai May 29 '22 at 21:17
  • It is sad to see that bureaucratism prevails. Calling posting again a repost of something 10 years old and closed is not reasonable. Also asking "is there a tool" can be answered elegantly with a yes/no and maybe a search hint instead of chastising the poor guy asking. Be kind, not a bureaucrat - please §:o) – wideseen Apr 30 '23 at 17:06
  • Thanks @wideseen. Often old posts are outdated, didn't solve the problem or only solved a similar problem. But I should have reasoned why the other posts didn't help. Also you can easily replace "is there a tool that..." with "is there a way to do..." That's just hairsplitting. And since we are using computers, we always rely on some kind of Software to achieve what we're looking for. I don't care about which one specifically, but I can't write software on my own for every single task I come across. – randomStack847 Aug 11 '23 at 15:39

0 Answers0