Opened 3 years ago

Last modified 3 years ago

#2662 open enhancement

Support for Kuaibo's qmv format

Reported by: cyril Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: qmv
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

.qmv is a fairly recent AV container that's becoming really popular, mainly in China. It is used as a .rmvb replacement for online streaming and regular archiving. For online streaming, it requires the installation of a browser plugin, akin to Flash Player.

Player (http://dl.kuaibo.com/QvodSetup5.exe) and video-to-qmv converter (http://dl.kuaibo.com/QMV_Creator_Setup.exe) can be downloaded from there: http://www.kuaibo.com/download.html

I'm not aware of its spec being published anywhere yet, but it would be nice of FFmpeg could support it.

Change History (14)

comment:1 Changed 3 years ago by compn

  • Keywords qmv added
  • Priority changed from normal to wish
  • Type changed from defect to enhancement
  • Version changed from unspecified to git-master

could you upload a sample? or tell us url of one?

comment:2 Changed 3 years ago by cyril

Here's a mp4 and the result of converting it to qmv/qmx:

http://towerofbabel.free.fr/test/Green%20Hill%20Zone%20-%20Sonic%20-%20Performed%20by%20Tetrimino.mp4

http://towerofbabel.free.fr/test/Green%20Hill%20Zone%20-%20Sonic%20-%20Performed%20by%20Tetrimino_1.QMV
http://towerofbabel.free.fr/test/Green%20Hill%20Zone%20-%20Sonic%20-%20Performed%20by%20Tetrimino_1.qmx

I used super fast conversion (only 5 sec!), so it's probably just the header that's been changed to match the new format, the AV content itself is probably the same. Don't know what's the use of the qmx file, probably just something being used when streaming the file online with the plugin.

comment:3 Changed 3 years ago by cehoyos

  • Reproduced by developer set
  • Status changed from new to open

Each chunk starts with a four byte identifier, followed by the size of the chunk (eight bytes).
The whole file is the "QMV " chunk, audio and video is identified by STRM chunks, followed by the (large) "DAT " chunk, the INDX chunk near the end of the file and finally the INFO chunk.
The absolute positions of the "DAT " and the INDX chunk are written before the first STRM chunk.
Maybe the first STRM chunk starts always at 0x56.

comment:4 Changed 3 years ago by cehoyos

Audio stream chunk contains the string "VORBIS" but audio in the file is actually AAC.

00000110  3c b0 53 54 52 4d 00 00  00 00 00 00 00 8b 04 00  |<.STRM..........|
00000120  00 00 00 01 00 02 00 02  ed f8 00 00 00 01 00 98  |................|
00000130  96 80 00 00 00 00 9f 73  de 9e 06 61 75 64 73 00  |.......s...auds.|
00000140  00 10 00 80 00 00 aa 00  38 9b 71 ff 00 00 00 00  |........8.q.....|
00000150  00 10 00 80 00 00 aa 00  38 9b 71 56 4f 52 42 49  |........8.qVORBI|
00000160  53 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |S...............|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 ff 00 00 ac  |................|
00000180  44 00 02 00 10 00 03 8b  07 00 00 00 10 12 10 00  |D...............|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 44 41 54  |.............DAT|

comment:5 Changed 3 years ago by cehoyos

The video stream chunk contains the fourcc, the resolution (0x780 x 0x438) and extradata (17 67 64 00 ... ee 3c b0).

00000050  00 00 00 00 00 00 53 54  52 4d 00 00 00 00 00 00  |......STRM......|
00000060  00 bc 04 00 00 00 00 00  00 01 00 42 34 30 00 00  |...........B40..|
00000070  00 01 00 98 96 80 00 00  00 00 9f 71 59 0b 04 76  |...........qY..v|
00000080  69 64 73 00 00 10 00 80  00 00 aa 00 38 9b 71 61  |ids.........8.qa|
00000090  76 63 31 00 00 10 00 80  00 00 aa 00 38 9b 71 48  |vc1.........8.qH|
000000a0  32 36 34 00 00 00 00 00  00 00 00 00 00 00 00 00  |264.............|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 07 80 00 00 04 38 00  00 07 80 00 00 04 38 00  |......8.......8.|
000000d0  00 00 18 00 00 00 00 31  63 76 61 00 00 00 00 00  |.......1cva.....|
000000e0  05 17 8b 00 00 00 04 00  00 00 ff 00 00 00 64 00  |..............d.|
000000f0  00 00 1f 00 17 67 64 00  28 ac b4 03 c0 11 3f 2c  |.....gd.(.....?,|
00000100  20 00 00 7d 20 00 1d 4c  01 e3 06 54 00 04 68 ee  | ..} ..L...T..h.|
00000110  3c b0 53 54 52 4d 00 00  00 00 00 00 00 8b 04 00  |<.STRM..........|

comment:6 Changed 3 years ago by compn

are you sure there are more than 3 1/2 people using this format?

ehe

comment:7 follow-up: Changed 3 years ago by cyril

Well, when searching for this format in Google, you get a lot of results from Chinese and Singaporian sites. I don't have any real statistics to back up the popularity of this format. And anything used within China quickly becomes "widespread" anyway...

For the audio stream, this is probably a bug from the converter: There is an option to do "lossless" and super fast conversion for mp4 files only. But when you see options for regular conversion, you can only use H264+OGG or VP8+OGG.
I used the former conversion, I can also provide the latter kind if needed.

comment:8 in reply to: ↑ 7 ; follow-up: Changed 3 years ago by cehoyos

Replying to cyril:

For the audio stream, this is probably a bug from the converter: There is an option to do "lossless" and super fast conversion for mp4 files only. But when you see options for regular conversion, you can only use H264+OGG or VP8+OGG.

(Interesting naming.)
Does the player play the file containing aac? What about other input codecs and the lossless conversion?

I used the former conversion, I can also provide the latter kind if needed.

Please provide such files, preferably very significantly shorter.
Are more than one audio or more than one video stream supported?

comment:9 in reply to: ↑ 8 Changed 3 years ago by cyril

Replying to cehoyos:

(Interesting naming.)
Does the player play the file containing aac? What about other input codecs and the lossless conversion?

The player can indeed play the file with aac, no issue there.
I only have mp4 encoded as h264/aac so I don't know what happens with other codecs. I'll find out about this later when I have time to re-encode a mp4 using other codecs.

Please provide such files, preferably very significantly shorter.
Are more than one audio or more than one video stream supported?

I tried to convert a mkv with 2 audio streams, the final result only got the 1st audio stream, so it seems like only 1 video and 1 audio streams are supported within a single file.
Here's a fully converted mkv:

http://towerofbabel.free.fr/test/sample.mkv

http://towerofbabel.free.fr/test/sample_1.QMV
http://towerofbabel.free.fr/test/sample_1.qmx

comment:10 Changed 3 years ago by cyril

Ok, I've just tried to convert sample.mkv as a MPEG-2/MP3 mp4 file, then converted the latter again as qmv using the "lossless" settings. You can find the results there:

http://towerofbabel.free.fr/test/testing.mp4

http://towerofbabel.free.fr/test/testing_1.QMV
http://towerofbabel.free.fr/test/testing_1.qmx

By the way, the popularity of the qmv format probably comes from the fact that the player comes with a custom IE shell browser, which features a search engine for free online video using this format. And the videos are popular Hollywood movies and Chinese TV series...

Version 0, edited 3 years ago by cyril (next)

comment:11 Changed 3 years ago by compn

out of curiosity, since they shutdown bt.ydy ...
where are all the chinese films and tv shows hiding now?
i'd like to conduct ... research on some films i've been looking for.

comment:12 Changed 3 years ago by cehoyos

Are audio-only or video-only files possible?

comment:13 Changed 3 years ago by cyril

@compn: you should install the player (link in the 1st post), then click on the "magnifying glass over a clapperboard" icon...

@cehoyos: the converter returns an error when I try to open an audio-only file, so audio-only isn't possible. Will look later for video-only possibilities.

comment:14 Changed 3 years ago by cyril

Note: See TracTickets for help on using tickets.