I received a promotional video screen with a USB interface. It comes with a couple example videos, one of which is here: https://drive.google.com/file/d/1B-wSURAgK-ePrfpKFM5nYbNhQ5mD-Ii2/view?usp=sharing md5sum
I'd love to figure out how to generate this file format, but I don't have much experience in reverse engineering. It seems to be a mostly normal AVI file, and can play in VLC just fine.
What I've got so far
I've been poking around with ffprobe, in a hex editor, and RiffPad, and found the following things:
- it is a RIFF AVI with 2 streams - video and audio
- the video frames are mjpeg - specifically mjpeg/AVI1, header
FF D8 FF E0 00 10 41 56 49 31
- the video frames are padded to the dword boundary instead of the word boundary which seems to be the standard. Riffpad and other such tools complain about this
ffmpeg -i original.avi -codec copy test.avidoesn't produce a working file - ffmpeg appends junk lists to some of the header information. deleting the lists and aligning frames to the dword boundary make the file play despite some differences in the header data.
- I'm having a hard time finding a tool to generate similarly formatted frames. FFMPEG wants to generate JFIF data instead of AVI1, which doesn't work. Judging by this source, the original frames contain their own huffman encodings, and the container file lists the chunks as
dcchunks, so compressed images.
dbsegments, which I can't copy over.
Any help with what to do next would be very appreciated.