|
|
MpegTV supports Fair Practices for Internet File Formats (full press release)
Xaudio MP3 | Wplay | VCD Player | Video Player for Linux & Unix | Free Plug-in for Linux & Unix |
MPEG video SDK for Linux & Unix |
MP3 decoding engine and toolkit for Win95/98/NT, Linux, Unix etc |
MP3 Player for Win95 /98/NT! | Video CD Player for Linux and Solaris! | Streaming MPEG Video player with audio! | FREE streaming Netscape MPEG Video Plug-in with audio! | Includes MpegTV's real-time MPEG Video library and sample source code! |
How do I trigger the easter egg ? |
There is an easter egg (i.e. a hidden feature) in mtv, version 1.0.3.1 and later. We will tell you how to trigger it when you pay the $10 Shareware license fee.
Why is video jerky when audio is playing ? |
If video gets jerky when you turn audio on (but plays fine with audio off), it means that your audio driver is probably broken.Old OSS audio drivers (under Linux, FreeBSD, SCO, BSD/OS etc) have bugs that prevent the player from synchronizing the audio and the video properly. Those old audio drivers are often included in Linux CD-ROMs. Even recent Linux distributions often include very old audio drivers.
There are several solutions to this problem. The best is to upgrade your audio driver or to use the commercial OSS/Linux driver. Look in the System Requirements on the MpegTV Player Page for the audio driver version that you need, according to your system.
You can also try to use a different method of synchronization, using the environment variable MTVP_AUDIO_OSS_DELAY_METHOD. Type "mtvp -h" for details.
Can I play "full screen" video ? |
The XIL-accelerated version of MpegTV Player for Solaris SPARC can zoom to full-screen without significant impact on performances when hardware acceleration is available (see README-XIL).Under Linux (with the Xfree86 X-server), it is possible to change the resolution of the display (using the keys CTRL+ALT together with the keys + and - of the numerical keypad), provided that your /etc/XF86Config file is properly set-up.
By using this method, you can obtain full-screen video without any loss of performances (this is a "hardware zoom").
Here is what I did in my XF86Config to add a 352x280 mode:
This works well with my system. You may have to adjust these configuration parameters for your system. Many thanks to Gergely Pongracz who provided the right timings!
- In the Monitor section, add:
Mode "352x280" DotClock 15.750 HTimings 352 368 416 432 VTimings 280 286 288 302 Flags "Doublescan" EndModeMode "352x240" DotClock 15.750 HTimings 352 356 404 440 VTimings 240 244 246 262 Flags "Doublescan" EndMode
- In the Modes line for each Display subsection of the Screen section, add "352x280" and "352x240".
On other platforms, MpegTV Player can only zoom 2x2, so if your video is originally 352x240, it can display it with a resolution of 704x480 in zoom mode.
The Player uses a software zoom to replicate the pels and therefore zoom mode significantly impacts the performances (maybe 30% slower).
Implementation of a larger scale "software zoom" (or a general one) would require rewriting a number of display-related routines, and the resulting performances would probably not be very good, this is why we have not done it.
What does Audio device busy or sampling rate unsupported means ? |
An error was returned by the audio driver when setting the sampling rate. Some audio boards do not support some of the sampling rates used in MPEG streams, or half those rates (when playing audio in Medium Quality).If you want to check if that is the case, run "mtv -aw" and capture the trace in a file. Once you got the error message displayed, kill the program and look for a message like:
mtv: audio: audioioctl.c:535: near byte 0x123: ioctl SNDCTL_DSP_SPEED failed: sampling rate 48000 not supported by device (driver changed it to 44100): Unknown error
When you have this problem, try selecting another audio quality. This will cause mtvp to use another sampling rate, which may be supported.
Why is the Solaris-x86 version slower than the Linux-x86 version ? |
The Sun X server seems to be less efficient than the Linux XFree86 server.The Player is very fast with the 16-bit color depth, available with Linux. Solaris only supports 8-bit and 24-bit, unfortunately.
The Solaris-x86 kernel seems to be somehow less efficient than the Linux-x86 kernel, i.e. the same benchmarks (compiled with the same compiler) run slightly faster under Linux-x86 than under Solaris-x86.
Why is the SCO version so slow ?
- The SCO X server (Xsco) has very poor performances. For example, on my hardware (a P100 with a Diamond Stealth 64 video board), the SCO X server is twice slower than the XFree86 server under Linux. This greatly affects the overall performances of the player.
How can I tell if a stream is a Video stream or a Systems stream ? Just play the stream with mtv.
- If you see the audio controls (volume and balance), it means that the stream is an MPEG Systems stream (i.e. a multiplexed stream that contains video and audio).
- If you don't see the audio controls, it means that the stream is an MPEG Video stream (i.e. the stream doesn't contain any audio).
Can I configure my web browser to use mtv for playing MPEG's ? Yes, of course, mtv can be installed as the default MPEG viewer (or MPEG helper application) for your Web browser.For instructions on how to configure a Web browser for using an MPEG viewer applications, check the MPEG Video Player Page or look at the documentation specific to your Web browser.
With a Netscape browser, use the Option->General-Preferences menu and select Helpers. Look for a "video/mpeg" entry (if there is none, create one).
To use mtv as the default MPEG viewer, you should define an entry with:
Some versions of Netscape Navigator seem to unset the env variable LD_LIBRARY_PATH before calling helper applications. If you get a message telling you that mtv cannot find some libraries, try using "env" as a wrapper to set
Description MPEG Video
Type video/mpeg
Suffix mpeg, mpg, mpe, mps, m1s
Application mtv %s
LD_LIBRARY_PATH
to the correct value (which depends on your system configuration) by replacing:with something like:mtv %s
Another solution to this problem is to place all the libraries needed by mtv in /usr/lib or /lib, which are always search by default.env LD_LIBRARY_PATH=/usr/lib:/usr/local/lib mtv %s
After you have configured and re-started your Web browser, check the configuration by playing this small MPEG Video bitstream with mtv.
Can I use mtv for streaming MPEG's directly from my network ? Yes, mtv is capable of streaming from a network.For example, if you use a Netscape browser, you can configure it to use mtv for streaming MPEG's directly from your network. Actually, in this case, Netscape will read the stream from the network and pipe it into mtv.
Juste follow the instructions for setting-up mtv as a helper, with the following difference:
For the Application to run, indicate:
This will cause Netscape to ask you whether you want to "stream" from the network or save the file before playing it. Streaming will work only if your network bandwidth is sufficient to play the MPEG stream at the intended bitrate.mtv -; stream-buffer-size=20000
How can I play VCD's ?
The Linux (x86, Alpha and PowerPC) and Solaris SPARC versions of MpegTV Player 1.0 have integrated VCD support. VCD support is available in version 1.0.5.0+ and later.
Requirements (Linux):
You need a Linux kernel that can read VCD's. Kernels 2.1.34+ can read VCD's. Patches are available for older kernels. Information regarding kernel versions and patches that you may need to read VCD's are available in README-xreadvcd. The kernel patches are included in the xreadvcd source code package.The default CD-ROM device name is
/dev/cdrom
. To use another device, set the environment variable MTV_VCD_DEVICE. Example:
$ setenv MTV_VCD_DEVICE /dev/cdrom0Requirements (Solaris SPARC):
You need a CD-ROM drive that is capable of reading CDROM-XA sectors and that supports at least 2X speed.The default CD-ROM device name is:
To use another device name you can set the environment variable MTV_VCD_DEVICE.
/vol/dev/aliases/cdrom0
if Volume management (vold) is running/dev/rdsk/c0t6d0s2
if Volume management (vold) is NOT runningUsage:
- To play a VCD, put the disk in your drive and select "Play VCD" in mtv's File menu.
- To change track use the track selector in the bottom-left corner of the control pannel.
- To eject the VCD that is being played, you must first close the sequence ("Close" in the File menu).
You can also try the following other ways to play VCD's:
There are programs that can read the VCD tracks and pipe them into mtv's standard input (use "<program> | mtv -" to pipe the standard output of <program> to the standard input of mtv). However, now that VCD support is included in the Player, there is no reason for using this method.
- xreadvcd is a program that can read VCD's with SCSI or IDE CD-ROM drives. Author: Ales Makarov.
- vcdread is a program that can read VCD's with SCSI CD-ROM drives (vcdread only works with some CD-ROM drives: try your luck! ). Author: Ed Martini.
- readxa is a program that can read xa-sectors. It uses the CDROMREADMODE2 ioctl and should work both with IDE and SCSI. For IDE 2.0.29 is ok, SCSI requires a kernel >= 2.1.34. Author: Gerd Knorr.
An alternate method is to use vcdfs, a user-defined filesystem which can be used in conjunction with userfs (User-defined filesystems). vcdfs provides access to MPEG-1 content stored on White Book standard Video CDs using most ide and some scsi cdrom drives. It has been tested using linux kernel 2.0.29, but will probably work with 2.1.x versions.
To use this method, you have to mount the VCD as a filesystem of type vcdfs. Then you can open and play the tracks from mtv, as if they were regular files.
I tried vcdfs with mixed results. I had no special problems installing userfs, but it is a bit tricky: userfs is a loadable module. It requires applying kernel patches and recompiling the kernel. Read the instructions carefuly!vcdfs works (somehow) but it is quite slow (because of the way User-defined filesystems are currently implemented) and unstable (you may have to reboot after playing with it).
userfs uses a process that reads the data from the disk and pipes it to the kernel (then to the application). It would be certainely much faster is User-defined filesystems were using shared memory instead of a pipe. Also, userfs and vcdfs are somehow experimental and still not completely stable. Use vcdfs at your own risks! If you can improve userfs and vcdfs, please send your patches to the authors.
Can I play VCD's on other systems ? MpegTV Player can play VCD's, but at this time it does not contain any specific code to read VCD's except on Linux and Solaris SPARC.The best theoretical solution to the problem of reading VCD is to extend the System to make it capable of reading VCD tracks at the driver or filesystem level. The advantage of this method is that it is totally transparent to the applications. Unfortunately such a system extension does not exist (as far as I know), except with Linux.
The alternate solution is to use a program that can read the VCD tracks and pipe them to the Player.
If you want to play VCD on platforms other than Linux and Solaris-SPARC, the simplest solution is to copy the entire movie from the VCD onto a hard disk and play the file from the hard disk.
Normally Windows95 is capable of reading VCD's, so you can use it to copy the Video CD tracks to your hard disk. I recommend using DOS "copy" command in a DOS window under Windows95. The video tracks are seen as files located in the mpegav/ directory of VCD's, and they have names like avseq01.dat, avseq02.dat etc.
What is the problem with VCD's ?
The source of the problem with VCD's is that the MPEG bitstreams, unlike normal CD-ROM files, are stored on special mode-2 form-2 sectors (also called CDROM-XA sectors). Those sectors have less error protection but hold more data).Although the MPEG files are visible in the directory structure when you mount the Video CD filesystem (the avseqXX.dat files in the mpegav directory), you may get garbage if you try to read those files as if they were normal files (depending on the Operating System you use).
Ideally reading VCD tracks should be handled by the Operating System and it should be totally transparent to the applications, but it is not always the case.
This is the case under Windows95 (Microsoft sometimes does a good job!), but unfortunately Unix-type Operating Systems do not (yet) give transparent access to the video tracks from VCD's. Some systems give access through some low-level driver calls (this is the case with Linux and Solaris) but some don't have any support for reading video tracks from VCD's.
With Linux and Solaris it is possible to read data from those mode-2 form-2 sectors using some special ioctl() calls, but those calls are very system dependent (not the same with Linux and Solaris), and whether those calls work may depend on the type of drive itself.
In general, on Unix-type systems, when an application reads those files with the normal read() routine, the system does not return the correct data because it is not aware (or does not care) that these mode-2 form-2 sectors are organized differently than regular CD-ROM sectors.
This is why applications that try to read VCD tracks as if they were regular CD-ROM files get what looks like corrupted data with missing chunks.
My stream plays fine under Windows95 but I don't hear the audio with mtv. What's wrong ? By default mtv only plays the left channel if the stream has stereo or dual channel audio. If for some reason audio is recorded on the right channel only in your stream (that happens!), you would not ear any audio, and that may be your problem.Try using option -ac0 to tell the Player to decode and play both audio channels (stereo).
You can also select the audio channels in the Options->Audio menu of mtv.
How do I get the best performances ? Under Linux, best performance (speed and image quality) is obtained when the X server is running in 16-bit depth mode (startx -- -bpp 16
).Under Solaris, you probably have no choice other than using 24-bit or 8-bit (you can check the depth and visuals supported by your frame buffer with the command
xdpyinfo
).When playing, the actual number of frames displayed per second is indicated. This number gives some indication of the performances of your system (if the number indicated is close from the nominal frame-rate, your system is fast enough so that the Player doesn't need to skip frames).
If you want to do fair comparisons between mtv and other MPEG players running under different platforms, such as Windows95, do not forget to take into account the amount of CPU resources used by the X server when mtv is playing under X11. The X server sometimes uses a significant amount of the CPU resources. You can use a program like top to check the use of CPU resources.
Where can I find more infos about MPEG ? Try MPEG.ORG.
Home About MpegTV Products FAQ Support
Last Modified: 8 Jun 98
All Rights Reserved © 1998 MpegTV LLC
Feedback