Opened 4 years ago

Closed 3 years ago

#8630 closed enhancement (duplicate)

Improve support for Bink videos.

Reported by: Vitamina Cé! Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: bink
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary: ffmpeg/libavcodec won't recognize a Bink video.

Full description: I am trying to use VLC or any other media player to watch the in-game documentary of "Bioshock Remastered". The documentary comes in Bink format. I figured out that the problem is that ffmpeg/libavcodec does not recognize the video stream, it does for the audio stream as binkaudio_dct. Therefore, one can listen the audio stream, but that's it. I tried to convert the video, but obviously ffmpeg won't work (see output below). I hope you can do something to improve Bink decoding.

Extra: I have prepared a 10MiB sample, in case you are interested. It can successfully be reproduced using Bink Video Player for Linux. This software is however limited, you can't seek through the video and audio won't work properly. Good enough for testing, anyways.

Ouput for VLC

$ cvlc DC_1-Welcome.bik 
VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
[000055f0718d2a30] dummy interface: using the dummy interface module...
[00007fc19c001150] avformat demux error: Unknown option "threads"
[00007fc19cc09500] main demux error: option sub-original-fps does not exist
[00007fc19cc94810] main demux error: option sub-original-fps does not exist
[00007fc19cc1bd50] main demux error: option sub-original-fps does not exist
[00007fc19cc93250] main demux error: option sub-original-fps does not exist
[00007fc19e69c100] main demux error: option sub-original-fps does not exist
[00007fc19feba310] main demux error: option sub-original-fps does not exist
[00007fc19f2b0aa0] main demux error: option sub-original-fps does not exist
[00007fc19feb9960] main decoder error: could not identify codec
[00007fc19feb9960] main decoder error: Unidentified codec
[00007fc19feb9960] main decoder error: VLC could not identify the audio or video codec

Ouput for FFmpeg

$ ffmpeg -v 9 -loglevel 99 -i DC_1-Welcome.bik 
ffmpeg version 4.2.2-1ubuntu1~18.04.york0 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/usr --extra-version='1ubuntu1~18.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-i' ... matched as input url with argument 'DC_1-Welcome.bik'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url DC_1-Welcome.bik.
Successfully parsed a group of options.
Opening an input file: DC_1-Welcome.bik.
[NULL @ 0x55e82c1d57c0] Opening 'DC_1-Welcome.bik' for reading
[file @ 0x55e82c1d6240] Setting default whitelist 'file,crypto'
Probing bink score:100 size:2048
[bink @ 0x55e82c1d57c0] Format bink probed with size=2048 and score=100
[bink @ 0x55e82c1d57c0] Bink 2 video is not implemented
[bink @ 0x55e82c1d57c0] Before avformat_find_stream_info() pos: 70472 bytes read:98304 seeks:0 nb_streams:2
[bink @ 0x55e82c1d57c0] max_analyze_duration 5000000 reached at 5004170 microseconds st:0
[bink @ 0x55e82c1d57c0] stream 0: start_time: 0.000 duration: 734.028
[bink @ 0x55e82c1d57c0] stream 1: start_time: 0.000 duration: -192153584101141.156
[bink @ 0x55e82c1d57c0] format: start_time: 0.000 duration: 734.028 bitrate=3059 kb/s
[bink @ 0x55e82c1d57c0] Could not find codec parameters for stream 0 (Video: none, 1 reference frame (KB2j / 0x6A32424B), none, 1920x1080 (0x0), 50/1199): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[bink @ 0x55e82c1d57c0] After avformat_find_stream_info() pos: 2050692 bytes read:2050692 seeks:0 frames:241
Input #0, bink, from 'DC_1-Welcome.bik':
  Duration: 00:12:14.03, start: 0.000000, bitrate: 3059 kb/s
    Stream #0:0[0x0], 120, 50/1199: Video: none, 1 reference frame (KB2j / 0x6A32424B), none, 1920x1080 (0x0), 0/1, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
    Stream #0:1[0x0], 121, 1/48000: Audio: binkaudio_dct, 48000 Hz, stereo, fltp
Successfully opened the file.
At least one output file must be specified

Attachments (1)

DC_1-Welcome_2.5MiB_sample.bik (2.4 MB ) - added by Vitamina Cé! 4 years ago.
Video from "Bioshock Remastered" in Bink format (sample of 1st chapter of the in-game documentary).

Change History (6)

by Vitamina Cé!, 4 years ago

Video from "Bioshock Remastered" in Bink format (sample of 1st chapter of the in-game documentary).

comment:1 by Elon Musk, 4 years ago

I already wrote patch for this, but other developers are against applying it.

in reply to:  1 comment:2 by Balling, 4 years ago

Status: newopen

Replying to richardpl:

I already wrote patch for this, but other developers are against applying it.

Why?

comment:3 by Carl Eugen Hoyos, 4 years ago

Component: undeterminedavcodec
Keywords: bink added
Priority: minorwish
Reproduced by developer: set
Type: defectenhancement
Version: 4.2git-master

in reply to:  1 comment:4 by sodanakin, 3 years ago

Replying to richardpl:

I already wrote patch for this, but other developers are against applying it.

Then please , please just release it somewhere else. Can you contact me ASAP with the fix?

comment:5 by Elon Musk, 3 years ago

Resolution: duplicate
Status: openclosed

duplicate of BK2 ticket.

Note: See TracTickets for help on using tickets.