Emulator Issues #6664
closedFFV1 video capture is dysfunctional with newer versions of ffmpeg
0%
Description
What went wrong?
When dumping frames (i.e. capturing video) for any game with lossless FFV1 codec the following message is spammed in console output:
[ffv1 @ 0x7f911bf477e0] Provided packet is too small, needs to be X. (where X is e.g. 2781184)
Moreover the resulting capture is unreadable by any player. ffprobe output for framedump0.avi:
[..]
[avi @ 0x14701a0] Could not find codec parameters for stream 0 (Video: ffv1 (FFV1 / 0x31564646), 640x480): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
framedump0.avi: End of file
What steps will reproduce the problem?
- Compile Dolphin on Linux with newer versions of ffmpeg (details below).
- Start up Dolphin, enable "Dump Frames" and "Frame Dumps use FFV1" in Graphics menu.
- Play a game. Video output should be captured. Above message gets spammed in console.
Which versions of Dolphin did you test on?
Several. Among those are 3.0-735 (commit d33e48319f27a2b17271128408a125a3f14364e2) and current master (commit e37cb1fc7646a6047fabb0c52584be1b33872737).
Which version of Dolphin used to work?
None. The problem is caused by a change in ffmpeg (see below).
What are your PC specifications (example: Operating System, CPU and GPU)?
OS: Arch Linux x86_64
Kernel: Linux arch-desktop 3.11.1-2-ARCH #1 SMP PREEMPT Sun Sep 22 19:45:00 CEST 2013 x86_64 GNU/Linux
CPU: Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz
RAM: 8GiB
64 or 32 bit Dolphin?
64-bit. Likely affects 32-bit as well.
Further information:
The problem first started appearing when Arch Linux switched to a more recent version of ffmpeg.
I bisected the commit that first caused trouble capturing (black screen, no output in console, hang): http://patches.libav.org/patch/38060/
This is the commit that causes above messages to be spammed to console output: http://patches.libav.org/patch/38926/
Note that since then Dolphin does not hang with a black screen anymore, but instead runs pretty normal aside from FFV1 error messages.