-
Notifications
You must be signed in to change notification settings - Fork 191
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Legacy Movie playback #1036
Comments
Quickly downloaded Aëdemphia on a server: File ending is MPG and uses MPEG2. The 90's are calling, what a waste of space. |
Which library options do we have here? ffmpeg? Gstreamer? At least ffmpeg is provided in vcpkg 👍 . G-bloat-streamer isn't 👎 Platform support obviously only our major platforms. Windows, Linux, MacOSX 👍 and everybodies favourite Android -_- |
At least libavcodec appears to be quite portable. Just tried for fun to compile it with ./configure --target-os=linux --arch=ppc --enable-cross-compile \
--cross-prefix=powerpc-eabi- --disable-altivec --disable-inline-asm \
--disable-runtime-cpudetect --disable-programs --disable-doc \
--disable-avdevice --disable-avutil --disable-avformat --disable-swresample \
--disable-swscale --disable-postproc --disable-avfilter --disable-pthreads \
--disable-network --disable-dct --disable-dwt --disable-error-resilience \
--disable-lsp --disable-lzo --disable-mdct --disable-rdft --disable-fft \
--disable-faan --disable-pixelutils --disable-encoders --disable-hwaccels \
--disable-muxers --disable-bsfs --disable-indevs --disable-outdevs \
--disable-devices --disable-filters --disable-xlib Compiled and only 56 MB cough 👍 |
There are some few additional games reported in a RMN thread. Because ffmpeg is not available in some distros for patent fear and implementing gstreamer playback is actually trivial with playbin, both ffmpeg and gstreamer could be considered. We don't need to deal with volume, tracking video stuff and such, so by far the most effort goes for dependency setup. |
About Aëdemphia, the game is still in development, I'm sure that he will be willing to change the format if needed :). Actually he wants to move on EasyRPG but video playback is the only missing feature (there are a lot of videos in his Aë). |
Guess best option is a free format such as vp8 / vp9 (any other options?). |
At least libvpx seems small enough if we compare with ~50MBlibavcodec. I saw some encoders binaries around the net and I saw sizes like 4-5 MB. I think the lib size must be a good constraint, more than supporting whathever old/obscure formats around there; if we want to keep player's size reasonable. A simple idea: When player tries to load a video file with an unsupported/unrecognized format, then show a warning telling the player that the video must be converted into (insert format here) to be played. Not the best solution, but at least an "enonomical" one. |
Here a dump from all movies I found on rmarchiv:
|
Some docs:
Tested with the 2k 1.51 using 2x windowed mode here. It could behave different on full screen, specially on Steam new desktop full screen mode, where videos with larger resolution could play with all pixels available instead of 640x480, but needs testing. Anyways, this would be an improvement on Player and potentially simpler to implement. |
Zipped a (legal) test.avi, around 2 seconds, 640x480, 25 fps, with sound, codecs used: MSMPEG4v2 and MP3. Generated with:
|
Since Windows 7, Media Foundation seems to support all legacy AVI and MPG based DirectShow codecs, also modern ones, and the dependency should not be that big, and it's more future proof, if considering a lean native implementation supporting most codecs without the bloat: https://docs.microsoft.com/en-us/windows/win32/medfound/supported-media-formats-in-media-foundation |
If we really want to fallback to OS-provided solutions (my favourite tbh, less dependencies) then for the web one could use the <video> and the <audio> tag with suitable callbacks. Just mentioning this here because Witch's Heart is now on niconico and you all know that nice intro video :) |
Emscripten supports byte range downloads that could provide some buffered thing for them (firefox also supports streaming, though, but other don't). |
SDL3 Added an example program of video decoding with ffmpeg that got substantial changes after the initial commit: https://github.com/libsdl-org/SDL/blob/main/test/testffmpeg.c More games with videos via KotatsuAkira, updated the wiki list: https://wiki.easyrpg.org/development/technical-details/games-using-play-movie-command |
Movie playback is an event command that uses DirectShow to show a video.
Really awful to support because any format can be thrown at us here...
Name of the game:
Any with Video event
Known files (Tell me more):
Pom Gets Wi-Fi v1-04/Movie/Credits_0001.avi
:RIFF (little-endian) data, AVI, 640 x 480, 30.00 fps, video: DivX 5, audio: MPEG-1 Layer 3 (stereo, 44100 Hz)
IB/Movie/book_1.avi
:RIFF (little-endian) data, AVI, 320 x 240, 29.97 fps, video: H.264 X.264 or H.264, audio: uncompressed PCM (stereo, 44100 Hz)
material_game/Movie/mate14_mo_01.avi
:RIFF (little-endian) data, AVI, 428 x 240, ~30 fps, video: DivX 4, audio: MPEG-1 Layer 3 (stereo, 44100 Hz)
Duesterburg-v1.21-Full/Movie/Babbit.avi
:RIFF (little-endian) data, AVI, 120 x 113, 6.00 fps, video: uncompressed Cinepak
Babbit belongs to the RTP (of Don?)
Dragon Warrior 1 Remix/Movie/ENDCREDITSsmall.avi
:RIFF (little-endian) data, AVI, 237 x 186, 5.00 fps, video: uncompressed
Damnation:
face.avi
:RIFF (little-endian) data, AVI, 720 x 576, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 44100 Hz)
Filme.avi
:RIFF (little-endian) data, AVI, 640 x 480, 25.00 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 44100 Hz)
FormatFactorycredits.avi
:RIFF (little-endian) data, AVI, 480 x 360, video: XviD
mar.avi
:RIFF (little-endian) data, AVI, 720 x 480, 29.97 fps, video: DV Video (dvsd), audio: uncompressed PCM (mono, 44100 Hz)
Tainys Avenchure 2:
ending.avi
: RIFF (little-endian) data, AVI, 320 x 240, 30.00 fps, video: Microsoft MPEG-4 v2, audio: ADPCM (stereo, 44100 Hz)intro.avi
: RIFF (little-endian) data, AVI, 960 x 720, 30.00 fps, video: Microsoft MPEG-4 v2, audio: ADPCM (stereo, 44100 Hz)Aëdemphia: MPEG 2 (.MPG extension)
Witch's Heart:
witch's Heart OP.avi
: RIFF (little-endian) data, AVI, 640 x 480, 29.97 fps, video: H.264 X.264 or H.264, audio: MPEG-1 Layer 3 (stereo, 44100 Hz)Used Codecs:
The text was updated successfully, but these errors were encountered: