Announcement

Collapse
No announcement yet.

final bbMPEG released

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • final bbMPEG released

    The latest - and last - release of bbMPEG is available: http://members.home.net/beyeler/bbmpeg.html

    I'm not sure if this is at all different from the last preview release, but you might want to update just to be sure.

  • #2
    BrianP: On the plus side, he does specifically say that others can take over the project, so updates ARE possible...

    Comment


    • #3
      There are one important difference with this release. BBMPEG now got variable bitrate encoding. I don't know how well it works. I have only encoded a few minutes video yet with VBR. If VBR works well, this could be the best MPEG-2 encoder.

      Comment


      • #4
        JoakimC:
        The VBR looks VERY nice.. However, the problem with it is that it's an uncapped VBR. I have generally found encoding 720x480 @ 29.97 sources with a quant value of 6 yields files that average 3.1 mbit/sec with a maximum level around 6 mbit/sec. Hopefully it won't be too tough to modify the code to force frames that exceed a max bitrate to use higher compression to fit within a max bitrate. The other problem is that Align Sequence headers gives some odd artifacting on my dvd decoder. (random black and green blocks) Without that setting, you can't seek to a random point in the file.
        On the plus side, coupled with the new Virtualdub I can use its frame server mode to send processed frames DIRECTLY to bbmpeg (so I don't need to rerender them), and if I setup multiple Virtualdubs in frame server mode I can queue all of them into bbmpeg to generate a single mpeg file! Audio doesn't work on this, but it's not terribly hard to extract the .wavs, encode them to MPEG-1 layer 2 and multiplex later.
        I can't emphasize how incredibly useful this is! (though it's also VERY slow)
        And to top it all off, bbmpeg generates interlaced MPEG-2!
        Even with its shortcomings right now, I am ready to call bbMPEG the best MPEG encoder I have ever seen.

        Comment


        • #5
          Walrus:
          My Hollywood+ MPEG card can handle 20Mbps so the uncapped VBR isn't a problem for me. I only care about the average bitrate. I dont use DVD settings in bbMPEG. I tried the DVD settings with align sequence headers an stuff like that. The resulting MPEG file played correctly the first 2/3 part after that it repeated the same frame until the end. And the picture quality was worse. I have tried to use VirtualDub in frame server mode. I wanted to do some noise filtering before feeding it to bbMPEG. But it doesn't work in Windows 2000. Are you using Windows 98?. I downloaded the source code for bbMPEG and looked at it. It is written for Borland C++. I want to convert it to MS Visual C++, but it will be difficult.

          Comment


          • #6
            JoakimC:
            Well for me, I want to archive the MPEG-2 streams on my SCSI tape drive. (my drive allows you to mount the drive like a drive letter, and can deliver ~ 1.5MB/sec constant data rates) There is a USB model of it that maxes out at around .8 MB/sec, so I'm trying to keep my transfers around the .8 MB/sec level so I could in theory play the movies back on one of those. With a quant value of 6, I can just manage it.
            As for frame servering, I'm actually running 6 frame servers in Virtualdub 1.3b at the same time right now under W2K on a dual processor setup feeding into 2 different instances of bbMPEG. (so I can keep both chips fully utilized) I'm doing clipping, 2d cleaner, temporal cleaner, unsharp mask, level correction, and linear resize and letterboxing in virtualdub. The only problem I have with it, is that it only correctly sends the video stream over. So I'm just encoding the video now. I'll encode the audio seperatly and multiplex them later. I estimate the encoding I'm doing right now will take up over 4 days (for 80 minutes of video at DVD resolution on a dual processor Celeron 366 overclocked to ~ 510MHZ each), but the quality of what's been encoded so far looks like one of the earlier commercial DVDs. (VERY good, but not quite reference quality)
            It's taking forever, but the quality is beyond what I would have been willing to believe.
            As for the source to bbMPEG, yes it's in BC++. (which is not a problem for me since I bought an educational license to it a while ago) The only real problem with it i is that it's written using the OWL object framework, which may be VERY tough to get working in VC++. (anyways, to be frank, I prefer Borland compilers as a rule) As far as I know, there is no way to support OWL in VC++, and converting OWL to MFC is not an easy task by any stretch of the imagination.

            [This message has been edited by Walrus (edited 16 April 2000).]

            Comment


            • #7
              Walrus: Which DVD player do ypu have and what parameters do you use to mux? (I assume, you are burning VCDs with Nero)

              Thanks,
              DGCom
              DGCom

              Comment


              • #8
                dgcom:
                Answer: I don't burn this stuff to VCD.
                I did a seperate VCD transfer of the material I'm now encoding, but that is pure standard VCD. I plan on burning that using Easy CD Creator 3.5c's VCD creator.
                As of right now, I have no DVD player, but I do have a Creative Labs DXR2 MPEG2/DVD decoder board which I currently use. I also have an Apex DVD/SVCD/VCD/MP3 player on order (hopefully I'll have it on Monday)
                As for the mux parameters, I just set the multiplexing in bbMPEG to standard DVD (without Align sequence headers for MPEG-2 material) and I let it rip.

                Comment


                • #9
                  Thanks. Got it...

                  But why you are using DVD profile? It has fixed mux rate, so your file may be bigger then they could be if video data rate is less then 10 Mbits/s?

                  If you'll need DVD-compatable stream, you can remux it later.

                  DGCom

                  DGCom

                  Comment


                  • #10
                    dgcom: Thank you for the tip. Actually, I'm no where muxxing right now. Virtualdub's frame server doesn't stream the audio correctly for AVI2MPG_VFW (or maybe AVI2MPG_VFW doesn't read it correctly?), so I'm only encoding video right now anyway.
                    BTW: That sounds very odd for a DVD profile to use a fixed mux rate since I thought DVDs were specifically designed to handle VBR compression. Maybe I'm missing something here...

                    Comment


                    • #11
                      Yeah. I thought so also... I'm not sure if bbMPEG is doing so correctly. Compression is VBR, but muxing may be not. Anyway...

                      By the way, did you got VirtualDub 1.3c (4/16/00)?

                      Avery fixed some audio problems in it. Also, frame server now correctly supports resizing...

                      DGCom
                      DGCom

                      Comment


                      • #12
                        dgcom:
                        Yeah, I grabbed Virtualdub 1.3c. Oddly enough I never really had a problem with frame servering resized video in 1.3b...
                        Though 1.3c works extremely well. Maybe someday I'll take a look through bbmpeg's source to figure out what it's doing with muxing DVD streams, though right now I have too many other things on my plate.

                        Comment


                        • #13
                          Sorry, little correction - DVD mux is VBR, but still has "forced mux rate".
                          This isn't a problem if you keep up your max. bitrate under dvd specs, so summ of audio+video bitrate is less then 10 Mbits/s.
                          Just checked.

                          DGCom
                          DGCom

                          Comment


                          • #14
                            dgcom: Does that mean 10mbit/sec total audio/video at the highest rate, or at the average rate?
                            BTW: I've been playing around with VBR MPEG-1 and bbMPEG... Very interesting results. With low quant values, I pretty much eliminate motion artifacts involving blockiness, though blockiness and jagged edges due to DCT seem to increase. My test file is the opening 30 seconds of Futurama. The sequence pans around with extremely complex CG rendered landscapes. It almost always generates severe motion estimation related blockiness no matter what constant bit-rate, but with variable bit rates, the pans are PERFECT, but the lower motion parts show pretty bad DCT related artifacts. The problem is that a constant quant value isn't optimal since the less the data to begin with, the less you end up with. Dark sections have lower data values, and thus the quantization will kill a lot of the existing data. I think the perfect MPEGx encoder would have an adaptive quant table with a bitrate cap function and auto-insertion of I frames at scene changes. (faster encoding and a less clunky interface to the advanced MPEG encoding options would be nice as well)
                            Sounds like a wish-list to me...

                            Comment


                            • #15
                              Hi!

                              10mbit/sec is the highest allowable data rate for MPEG-2 program stream for DVD. Accounting for AC3 sound, this explains why bbMPEG has preset for video bitrate (in case of CBR) at about 7.3mbit/s.

                              MPEG-1 VBR is, in my opinion, highly experimental - not all players will play it. But I'd try it as well. On CG graphics, I think, it would be a big headache to avoid many types of artifacts. On plain video, I'm getting very good results with even default settings.

                              And you are absolutely rightabout your wish list!

                              DGCom
                              DGCom

                              Comment

                              Working...
                              X