Plextor ConvertX PX-M402U

Revision as of 22:39, 6 March 2015 by Admin (Talk | contribs)

Plextor ConvertX PX-M402U USB 2.0 Real-Time Digital Video Converter. Converts to DivX®, MPEG-4, MPEG-1 and 2.

  • Real-time hardware and MPEG-1/2/4 digital video converter
  • Fast digital video conversion and lower CPU usage with hardware encoder
  • Easy-to-use personal or VCD video creation software
  • Official DivX Certified product
  • Save hard disk space with DivX and MPEG-4

The ConvertX PX-M402U is an external USB 2.0 capture device that can encode external analog inputs to MPEG2/DivX in realtime. It has a full Linux SDK which has an open license. While the firmware is included with the SDK, this firmware does not have an open license.

There is a similar model, the Plextor ConvertX PVR PX-TV402U, that includes a tv tuner.

Review

Not at this time.

Using with MythTV

driver and system recognition

The device was recognized in Mythubuntu immediately upon connection. The output of lsusb shows the device as:

Plextor Corp. ConvertX M402U A/V Capture

testing video input

Any video player shows video from a connected source by simply opening the file

/dev/video0

If your device is on video0, it may be on video1 or another if you have other capture devices.

testing audio input

The audio device is going to have a name like: "hw:3,0" It will likely be a second audio device since the first is the system soundcard.

  • hw:0,0 - The system sound device / ALSA device
  • hw:3,0 - Audio from Plextor ConvertX

Finding the ConvertX, type:

cat /proc/asound/cards

Output Example:

0 [SB             ]: HDA-Intel - HDA ATI SB
                     HDA ATI SB at 0xfe5f4000 irq 16
1 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                     HDA ATI HDMI at 0xfe7e8000 irq 19
2 [pcsp           ]: PC-Speaker - pcsp
                     Internal PC-Speaker at port 0x61
3 [PXM402         ]: go7007 - Plextor PX-M402
                     Plextor PX-M402

ref: http://www.alsa-project.org/main/index.php/Asoundrc

Testing with VLC (Video LAN Player)

Verified working audio and video using VLC Player 2.1.4

Assuming your capture device is /dev/video0 and ALSA ID is hw:3,0 then do the following:

  1. Open VLC
  2. On the menubar: Media -> Open Capture Device (or press CNTL-C)
  3. In this Open Media dialog click the "Capture Device" tab.
  4. Use these settings:
    1. Capture mode: Video Camera
    2. Device Selection
      1. Video device name: /dev/video0
      2. Audio device name: hw:3,0
  5. Click the Play button at the bottom of the dialog

This is creating the playlist v4l2:///dev/video0

v4l2 is Video4Linux version 2 video capture framework for linux. Video4Linux2 drivers have to setup supporting ICs to do audio/video muxing/encoding/decoding.

To open the capture device with video and audio from the command line:

vlc v4l2:///dev/video0 :input-slave="alsa://hw:3,0" 

Test with VLC playing video from a connected composite DVD player. VLC reports the following:

Video

  • Codec: MPEG-4 Video (mp4v)
  • Resolution: 720x480
  • Frames: 29.97
  • Decode: Planar 4:2:0 YUV

Audio

  • Codec: PCM S16 LE(s16l)
  • Channels: Stereo
  • Sample rate: 48000 Hz 16 bit

Testing with mplayer

Unsuccessful. Able to produce video display only, no sound.

mplayer errors:

Audio: no sound
Starting playback...
[...]
[msmpeg4v1 @ 0x7f4c9546cb00]invalid startcode
[msmpeg4v1 @ 0x7f4c9546cb00]header damaged
Error while decoding frame!

This produces a picture but no audio:

mplayer tv:// -tv driver=v4l2:norm=NTSC:input=0:amode=1:width=720:height=480:outfmt=yv12:device=/dev/video0

Now trying to add audio:

mplayer tv:// -tv driver=v4l2:norm=NTSC:input=0:amode=1:alsa=1:adevice=hw.3,0:audiorate=32000:width=720:height=480:outfmt=yv12:device=/dev/video0
  • alsa=1 (use alsa)
  • adevice=hw.3,0 (use direct hardware access with device 0 of card 3 which is the Plextor ConvertX on my system)
  • audiorate=32000 (audio sample rate)
  • amode=1 (stereo)
  • input=0 (0=composite input, 1=svideo input)
  • norm=NTSC or normid=4 (see supported norms: 0 = PAL, 4 = NTSC)

Sometimes the USB port goes KaBlam

While testing you might find the USB port stops. If you do this:

cat /dev/video0

and you get nothing, knowing that your video source is connected and active, you might need to unplug the USB cable and plug it back in again after a few seconds to reset the port.

If reaching behind the computer to unplug the USB cable is bothersome you can try this snazzy little C program to reset the USB port:

  • usbreset.c - specify the BUS and DEVICE number to reset the USB port.

Note: as an alternative to /dev/video0 (which you don't want to try from a remote shell) you can strip the non-ascii characters for a safer test of the device.

tr -cd '\11\12\15\40-\176' < /dev/video0

module-loopback hack

We made it so there was audio and video using VLC. However, many other apps have trouble. mplayer command line parameters are more tricky than vlc.

It is possible to bind the input device from the Plextor ConvertX to the Alsa stereo output.

1. Install pulseaudio control: pavucontrol

apt-get install pavucontrol

2. Start your a/v source. Open KMPlayer and direct it to play from file: /dev/video0 or try "Dragon Player".

3. Open pavucontrol and notice under the "Input Devices" tab there will be two separate areas.

Pulseaudio-loopback01.jpg

  • Built-in Audio Analog Stereo
  • ConvertX M402U A/V Capture Analog Stereo

If your connected device and the ConvertX are both work properly you will see activity on the level indicator bar (which is blue in the illustration) for #2. But you don't hear anything.

You can bind (might not be the correct term for it) the sound card to the ConvertX audio input using module-loopback.

pacmd load-module module-loopback latency_msec=5

Now you should hear out the speakers what is showing as indicator bar activity on "ConvertX M402U A/V Capture Analog Stereo"

This is an ugly hack. Why? Because you just combined everything so whatever else is playing through the card will get mixed and you will hear it or it will be captured if you are encoding.

You can remove the module-loopback mixing by doing:

pacmd unload-module module-loopback

source: jthill on linuxquestions.org

It would be better to specify which interfaces to mix specifically rather than just mixing them all.

pactl load-module module-loopback source="alsa_input.usb-PLEXTOR_Plextor_ConvertX_M402U-00-PXM402.analog-stereo" sink="alsa_output.pci-0000_00_08.0.analog-stereo"

I couldn't get this to work. When I do I will come back here and correct the error. moving on...

Q: How do I know what to specify for the source, what is the exact correct text string?

A: I found it by using "pacmd list-sources". There is a lot of information, it would help to narrow it down:

pacmd list-sources |grep M402U

Another cool way to narrow down the information for any capture device and to show inputs and outputs...

pacmd list-sources | sed -nr '/^ |\tname:/H;${g;s/\n\t/\t/g;s/\n//p}'

Ugly Hack Warning: There is latency when using the "hard wire" or "binding" hack. You might notice that sound lags behind the video depending on your hardware and system processing power. It is better to use the method described in the VLC section where you can tell the software which input device to use for sound. This was easy with VLC. It is not easy other software. I couldn't get it to work in mplayer without using this hack.

See also:

Adding to MythTV back-end configuration

Related

  • Hauppauge USB Live-2
  • Plextor ConvertX PX-M402U
  • Hauppauge 1196 WinTV-HVR-1250
  • Hauppauge WinTV-HVR-2255 Dual Tuner
Last modified on 6 March 2015, at 22:39