Is there any chance you could add support for DPG files?
These are used by Moonshell, a media player for Nintendo DS.
The basic format is MPEG1 video, MP2 Audio. The A/V isn't really muxed, it's just has the video data and then the audio is tagged onto the end, with a simple header describing the file.
If you could do this, I can post more info and code for building the DPG file from m1v+mp2.
What I really need is for the option of 32KHz audio. Having full support would be excellent though. Super has just about everything needed to do this, it's just missing the muxer and the audio option I mentioned.. Like I said, I'll post more info if you're interested.
Cheers
fig
Offline








Any Multimedia file is processed by the internal commandline encoder:
ffmpeg, MEncoder, x264 etc.. that are NOT written by eRightSoft and are
licensed and distributed under the terms of the GNU General Public License.
SUPER(C) is however only a GUI
if these commandline encoders support DPG files then it's solved.
If they can't, I am affraid not much could be done.
Online
It's just like encoding an MPEG1, with a couple of additional steps..
step 1: ffMpeg or MEncoder can be used to encode a standard MPEG1.
step 2: bbDemux can be used to seperate the streams.
step 3: I can supply the code to multiplex these streams into a DPG file. I've got that right now in Pascal, but can convert it to C++ if needed. It really is as simple as copying a file. Or to keep with the commandline thing, I can supply an executable that muxes a DPG from m1v+mp2.
To see the various mpeg settings usually used, theres a couple of apps you can look at like..
BatchDPG
http://ls5.cydonianknight.com/?Download
DPG tools that comes with Moonshell
http://mdxonline.dyndns.org/archives/20 … _top.shtml
Offline








Oh, you want to create a DPG file...
Use ffmpeg
Disbale Video and create the mp2 alone (in mpeg container)
Disable Audio and create the mpg1 alone (as an mpg file)
use
copy /b myvid.mpg+myaud.mp2 final.mpg
but I will surely have a look at your stuff..
Online








I looked at it, extremely simple, however, ffmpeg and MEncoder
CANNOT read/decode. Can you play them on PC
also, the Audio 1st then video 2nd, not the reverse.
so use
copy /b myaud.mp2+myvid.mpg final.mpg
however it seems you need the header file, so easy to create.
IF, and ONLY IF, I have enough time, I will add it into the new release..
Thank you fig for pointing out this format.
Online
Thanks man.
i just thought it would be cool to add this because, like you said, it's a very simple format and it expands the user base as well.
I tried to write a DirectShow filter to play them, but I've never touched DirectShow before and didn't have much luck with that.
I did manage to write a little player for them that uses DirectShow though, but it's only compatible with standard framerates. Rates like 12 fps etc (which looks good enough for cartoons on NDS) don't work. It works fine on Moonshell because it uses the DPG header for the frame rate. I just noticed that the audio is out of sync too. It's not finished because I don't know how to delay the audio and how to set the video playback rate manually. Trying to get any info from the DirectShow crowd is near impossible. 
Other than that, there's no way to play them on PC yet.
BTW, I have to say.. 2 or 3 clicks and I have a high qualiity DVD compliant VOB file, WOW. Very nice work on this app.
Offline
I agree adding DPG support will expand the user base
)
The 2 links posted above are basically the only tools available to convert to DPG format, and both are quite slow.
Im certain nearly everyone wanting to convert to this format will adapt Super immediately as their default tool.
Last edited by systmcrsh (2007-03-14 23:33:58)
Offline

If it helps, the DPGTools included with moonshell have a little program called "dpgshow" for viewing dpg videos on windows pc's.
And I also want to say, that DPG support would be a great feature. I hate the decoders available because of their bad speed. And SUPER was really fast on my PC's till today, so I think it would speed up DPG encoding really much.
If it would have DPG support, it would have hundreds of video- and NDS-Fans using the tool within one or two weeks, because all of them being annoyed of the available slow converters (BatchDPG and DPGTools).
Offline








I do not promise any final results, however i will seriously look at this format.
Online

I have found some sites that could help you and I also found a python script for dpg ceonversions. All convert-scripts and manuals use MEncoder or ffmpeg, so I think, it would be possible to get DPG supported within the next few builds of SUPER:
A description of the format including header,...:
http://en.wikipedia.org/wiki/NDs-mPeG
A forum thread about dpg conversion for linux, completely explaining all needed steps for valid DPG's including C++-Code for it:
http://forum.gbadev.org/viewtopic.php?t=7897
The mentioned python script:
http://theli.ho.com.ua/dpgconv/index.html
You have enough time, I do not try to push you, but I think these pages might be helpful.
Offline








This is a zip file containing 4 differently created Nintendeo DPG files for testing.
Users that are interested are requested to report which of the four files is normally
playable on their Nintendo DS in order to include this feature in the next release.
Thanks in advance
Online

I loaded your archive and tested the files. This is what I got as a result:
File 1 (001.dpg):
The video looks pretty good.
Like every video, this video hangs a little at the start (while the hand of the man playing moves left).
This video is the only one which ends correctly, every other video makes my Nintendo DS freeze when it is finished.
However, the sound stops after a while (with a little rattling noise for half a second, this occurs, whenn the "GARRY POTTER"-text fades out).
The sound is good (while it plays)
File 2 (002.dpg):
Little hanging at start and the video does not finish correctly. Sound has artifacts (like scatches (when you leave your finger on the guitar strings while moving the hand to another position, the sound is comparable...)), NDS freezes when the text starts fading.
File 3 (003.dpg):
Little hanging at start and the video does not finish correctly. Sound is good, NDS freezes at the time when the text should start fading
File 4 (004.dpg):
Same behaviour like file 2.
So for me having to vote, I would prefer file 1 for not causing my NDS to hang up. Following I would vote file 3 for at least a good sound and the worst videos are file 2 and 4, I could detect no real difference. But it can be, that video 2 has slightly more "scratches" as file 4.
I tested your videos on the extended-module on my M§ perfect (MiniSD-Version) with a Nintendo DS Lite. But it should behave the same when you play it directly in Moonshell, because the extended module is a kind of skinned moonshell-player. and I never saw a DPG-video that could be played on one environment better than on another one.
I hope, this helps. If not, ask me. If I should test another file, post it here (I hope, I get an email every time a post is here because of me not checking in regularily. If not, send me an email (pifnet AT gmail DOT com).
And I am very sorry for my english being not the best.
Thumbs up!
ingofreyer
Offline
I downloaded and tried to test the files with Moonshell version 1.71. It seems like they've made some changes since 1.6, I get this error...
Error: horizontal sizes other than 256 became unsupported..
If you do another batch of files for testing, could you make them 256 wide? Meanwhile, I'll be searching for an older version because all the links are down.
I'd suggest you leave the other width settings available for people to choose. Even though it's not supported in the current version of Moonshell, they may well re-enable support for other widths in the next release.
Thanks for your effort, I'm looking forward to testing the files.
Edit:
I managed to get a hold of 1.6.
With all files, the video plays perfectly, but audio finishes well before the video.
With files 1 and 3, the audio sounds OK. The sound is scratchy and unusable on files 2 and 4.
The best of them was file 3, but all had out of sync audo.
I hope this helps. You're almost there... 
Edit again:
I forgot to mention that I tested on a DS Lite with a Supercard SD.
Last edited by fig (2007-06-07 17:26:09)
Offline








Thank you guys for you quick feedback..
This zip file contains 3 files, encoded with a totally different method, please comment.
cheers
Online

okay. I tested your files now with two different players. First, I tested it with the built-in moonshell-version of my M3. Second, I tested it with the actual Moonshell 1.7.1 and got pretty different results...
First Testing period: The built in moonshell version in the M3:
File 1 (005.dpg):
The video acts a little bit funny. It seems, that it does only jump from one keyframe to the next. Sound is good.
All videos are now ending correctly.
File 2 (006.dpg):
This time, the video looks good but the sound is scrappy. sounds like the speaker gets only power in short periods of time and that very fast (frequency of 4-5 Hz, propably (1hz is one period of playing and not-playing, not the sound frequency))
File 3 (007.dpg):
Same like File 2, could not find any difference.
Second testing period: The actual Moonshell 1.7.1:
File 1:
In the actual moonshell-version, this video is just perfect. sound and video look and sound good. no freezes, no problems.
File 2:
The video freezes every quarter second for just the same amount of time (0.25 seconds) (did not stop it by the watch, but the time is something like that). while it plays, it looks and sounds good.
File 3:
Like above, file 3 and file 2 act pretty the same. No differences.
I do not judge about the sound being synchronous, because of me being a badass at playing music instruments and not knowing the original video...
Offline








Thank you for your time and efforts.
actually we do our testing on PC, using the player dpgshow.exe supplied inside the
moonshell171 ZIP archive downloaded from Infantile Paralysiser.
the 3 last files have the following specs: (you may check them using dpginfo.exe supplied with the moonshell171 ZIP archive)
they have EXACTLY the same video part, only audio differs
005: 432kbps @ 25fps - 32000Hz 96kbps
006: 432kbps @ 25fps - 44100Hz 96kbps
007: 432kbps @ 25fps - 48000Hz 128kbps
So, on PC the playback of all 3 files 005..007.dpg looks great for both video and audio
with a perfect synch lock.
we do not know if the NDS resources aren't enough for playing the 44100 and 48000Hz
causing what you have called "freezes every quarter second".
It seems that the NDS won't play the same way the file played on dpgshow.exe
which is the MoonShell player !
Is there any particular reason why NDS users keep the original MoonShell supplied
with their units instead of upgrading to the last stable one (currently 1.7.1)
Online

The reason is, that the user of the M3-Adapter (I cannot speak for others, I only own a M3) have no choice. The M3 has its own firmware in which a version of moonshell is implemented. For this version, you can choose "Extended" as an option in the M3 Main menu.
If you want an actual version (1.7.1 at the moment), you have to go tho the official moonshell-homepage and download it. After installing the nds-rom, you can uns the actual one. I personally use the actual one most times. The only reasin for me to use the firmware-included one is, that I use 3 different MiniSD-cards. I normally do install Moonshell on only two of them. But when I have a movie, I copy it on any one of the cards (mostly on the one with the most free space on it). So sometimes, I have to use the included player.
But if the videos play fine in an actual version of moonshell, it is already good enough.
By the way, I checked a previously created dpg (out of a DVD-rip) and it has the following specs:
DPGFilename=testdvdrip.dpg
FileSize=253038520byte
HeaderID:DPG0
TotalFrame=78599
FramePerSec=15,0000
TotalTime=5239,9333sec(87,3322min)
SoundRate=32000Hz
SoundChannels=Build-in mpeg1-audio-layer-2 (mp2)
AudioData=36->83840832byte
MovieData=83840868->169197652byte
GOPListData=0->0byte
PixelFormat=3 RGB24
The video plays good on my ds in every environment. So maybe you should try to use a slower Fps-Rate. The NDS has not the best hardware. I am not sure about it, but I think, it has 2 processors with 33 and 66 mhz or something like that...
€dit:
http://m3adapter.com/main.htm <-- Here you can read about the M3 Adapter, if you are interested in its functions.
Last edited by ingofreyer (2007-06-09 05:04:38)
Offline
I'm a bit late because I only just received a notification email. 
Still testing with 1.6..
5. Audio plays fine, video is choppy
6. Slow motion video and audio
7. Same as 3.
With that clip, i think 25fps is a little too much for the NDS. The audio sync problem is fixed though. Was that because of frame dropping (25fps ->18 fps)?
I think the ideal settings would be 32Khz audio with 18fps video if possible, for this clip. It can vary though, some cartoons only need 12fps to look OK.
Offline








2 more files in this zip, they are encoded at lower FPS as both of you have recommended.
It was a pain in the neck to encode them, as the MPG standard rejects any FPS other
than the four standard ones 23.976 25 29.97 and 30
anyways, now it's done, and we can encode DPG's at any low FPS!
Both files play great on PC, hope the same on your modules.
Online

Yeah, that did it. Here are my results:
File 1 (008.dpg):
This file freezed irregularily (after 1 second, after 2 seconds, after a half second, ...) for a short time on the M3 Extended mode. On moonshell itself, it pixelized a little bit at start but played fine afterwards.
File 2 (009.dpg):
This FIle played fine at every time. On the extended mode it froze for a quarter second at start but played very fine since.
On Moonshell itself it played very fine.
Offline
Basically the same results from here.
8. Slight pause at the start, then plays fine.
9. Plays great. Doesn't look like it's only 14 fps. 
In both clips, audio is in sync and the picture looks good on the small screen. I don't see any blockiness at all either, which is usually hard to avoid with the low bitrate.
Can't wait for the release now, I hope you include it. 
Offline

I noticed today that the new release of Super C now has a profile for Nintendo DS DPG format.
Thanks!
Offline
I just downloaded and installed Super (C) build 23.
I have not tried encoding dpgs, I just wanted a windows player for the 400+ dpg files I already have.
I cannot use dpgshow.exe because it creates undeletable .wav files and/or hangs the computer when I try to play a dpg file. And dpgshow has no pause or time skip controls. Pretty useless if you want to skip around in a 2 hr file to check for audio/video sync problems or resume after an interruption.
I tried to play over a dozen dpg files from my library using SUPER (C). NONE of them even open a video window, but they all make sound. No controls here either.
I tried playing several avi files. They play. Audio AND video. No crashes.
Overall rating: promising, but useless for now as a media player.
I hope you can make this PLAY dpgs and add some controls.
I do not plan to test encoding, but I would like to hear from someone who has made a 90-120 minute dpg movie.
Offline

GlobuleFou wrote:
I noticed today that the new release of Super C now has a profile for Nintendo DS DPG format.
Thanks!
Has anyone successfully used this yet? I have been trying to convert 2 .avis (that I can view fine on my PC) and both give me error messages when trying to use the Nintendo DS profile. It gives me an error and tells me to try un-checking DirectShow. If I run without DirectShow it errors and tells me to try checking it.
I have used Super for converting .avis > .flv and it worked great. Do I need to install any special codecs to create Nintendo DS videos, or should this "just work" out of the box??
Thanks.
Markus.
Offline

Here are the input file details:
SUPER © - Multimedia Analysis Box (by http://mediainfo.sourceforge.net )
Analyzing the source file <whatever>.avi
General #0
Complete name : <whatever>.avi
Format : AVI
Format/Info : Audio Video Interleave
Format/Family : RIFF
File size : 694 MiB
PlayTime : 52mn 43s
Bit rate : 1831 Kbps
Video #0
Codec : DivX 5
Codec/Family : MPEG-4
Codec settings/PacketBitStream : No
Codec settings/BVOP : Yes
Codec settings/QPel : No
Codec settings/GMC : 0
Codec settings/Matrix : Default
PlayTime : 52mn 43s
Bit rate : 1690 Kbps
Width : 720 pixels
Height : 528 pixels
Aspect ratio : 4/3
Frame rate : 25.000 fps
Resolution : 8 bits
Chroma : 4:2:0
Interlacement : Progressive
Bits/(Pixel*Frame) : 0.178
Title : Video
Writing library : DivX503b1307p
Audio #0
Codec : MPEG-1 Audio layer 3
Codec profile : Joint stereo
PlayTime : 52mn 43s
Bit rate : 128 Kbps
Bit rate mode : VBR
Channel(s) : 2 channels
Sampling rate : 44 KHz
Resolution : 16 bits
Title : Audio
Writing library : Gogo (after 3.0)
My profile export is as follows:
[Encoder]
Format=32
VidCodec=0
AudCodec=0
Encoder=0
VidBitr=12
AudBitr=3
VidScaleSize=4
MoreScaleSize=0
CustVWid=720
CustVHght=416
Cust1VWid=544
Cust1VHght=320
Cust2VWid=416
Cust2VHght=272
VidAspect=1
VidFPS=5
MoreFPS=0
Custfps=8
Cust1fps=16
Cust2fps=25
AudSample=0
AudChanl=0
VidDisable=0
AudDisable=0
VidCopy=0
AudCopy=0
Vidhq=1
Vidtq=0
Vidfasp=0
AudioSampleReference=0
AutoAudience=0
Target=0
TStarget=0
Theme=5
OutPutFolder=C:\Temp\output\
SourceFolder=C:\
DSlogo=0
DSlogoMessg=*eRightSoft*
DSlogoFont=Vivaldi
DSlogoSize=28
DSlogoColor=10354879
DSlogoHlColor=16240383
DSlogoPos=4
DSJoinMux=12
DSMotion=-1
DSsmUD=6
DSfmUD=69
DSFH=0
DSFV=0
DSRevrs=0
DSTurning=-1
DSinvY=0
DSinvU=0
DSinvV=0
DSBW=0
DSFI=0
DSFO=0
DSFIsec=4
DSFOsec=03
DSInf=0
VidDeinterlace=0
EncodeDuration=0
EncodeVolume=50
SnapShotAt=3
VideoOffsetSec=2
EncDurationFor=10
CropTop=32
CropRight=0
CropButtom=32
CropLeft=0
PadColor=5127495
PadTop=32
PadRight=0
PadButtom=32
PadLeft=0
H264profile=0
H264level=1
FLVTag=
[RealProducer]
Path=C:\PROGRA~1\
Audience=0
[GeneralOptions]
Hints=0
ShowCreditScreen=1
AlwaysOnTop=1
AnalyzeON=0
AviSynthON=1
PSPcnt=0
VOBcnt=10
UnderScoreON=0
SameSrcFolder=0
[Player]
Brightness=0
Contrast=9
Hue=10
Saturation=11
FullScreen=0
Aspect43=1
Aspect169=0
Tiles=0
PlaySlow=0
PlayFast=0
Flip=0
Mirror=0
TurnRight=0
TurnLeft=0
ShowLog=0
I am running SUPER(c) version v2007.build.23.
My PC is a *monster*. Dell XPS 710 - 2.4GHz Core Duo (6600), 4GB RAM, Nvidia GTX 8800 with 768MB RAM.
Offline