Opened 9 years ago

Closed 11 months ago

#10868 closed Bug Report - Crash (Won't Fix)

Nuvexport is failing on an uninitialised value error

Reported by: anothersname@… Owned by: beirdo
Priority: minor Milestone: unknown
Component: Apps - Nuvexport Version: 0.25-fixes
Severity: low Keywords:
Cc: Ticket locked: no


Running Nuvexport .25 fixes on a Linux Mint 13 Mate 64 bit server.

Installed Nuvexport from the .25 fixes branch.

While trying to process any files getting the following error.

Use of uninitialized value $info{"video_type"} in string eq at /usr/share/perl5/MythTV/ line 327, <STDIN> line 2. Stream type 'lavfpref' is not an mpeg, and will not work with this program.

Cleaning up temp files.

I'm not a perl coder but looking at the code it looked to me like it could be the output produced by mplayer as in the appropriate line it outputs MPG2 not MPEG2

[lavf] stream 2: audio (mp3), -aid 1, -alang eng ID_SUBTITLE_ID=0 ID_SID_0_LANG=eng [lavf] stream 3: subtitle (dvbsub), -sid 0, -slang eng LAVF: Program 1 PROGRAM_ID=1 LAVF: 2 audio and 1 video streams found LAVF: build 3478528 VIDEO: [MPG2] 704x576 0bpp 25.000 fps 15000.0 kbps (1831.1 kbyte/s) [V] filefmt:42 fourcc:0x3247504D size:704x576 fps:25.000 ftime:=0.0400 Load subtitles in /mnt/mythfifofum/

Whereas the perl code at that line is looking for MPEG[12]

# First, we check for the existence of an mpeg info program

my $program = find_program('mplayer');

# Nothing found? Die

die "You need mplayer to use this script on mpeg-based files.\n\n" unless ($program);

# Grab the info we want from mplayer (go uber-verbose to override --really-quiet)

my $idargs = "-v -v -v -v -nolirc -nojoystick -vo null -ao null -frames 0 -identify"; my $data = $program $idargs '$file' 2>/dev/null; study $data; ($info{'video_type'}) = $data =~ m/VIDEO:?\s*(MPEG[12]|H264)/m; ($info{'width'}) = $data =~ m/ID_VIDEO_WIDTH=0*([1-9]\d*)/m; ($info{'height'}) = $data =~ m/ID_VIDEO_HEIGHT=0*([1-9]\d*)/m; ($info{'fps'}) = $data =~ m/ID_VIDEO_FPS=0*([1-9]\d*(?:\.\d+)?)/m; ($info{'audio_sample_rate'}) = $data =~ m/ID_AUDIO_RATE=0*([1-9]\d*)/m; ($info{'audio_bitrate'}) = $data =~ m/ID_AUDIO_BITRATE=0*([1-9]\d*)/m; ($info{'audio_bits_per_sample'}) = $data =~ m/AUDIO:.+?ch,\s*[su](8|16)/mi; ($info{'audio_channels'}) = $data =~ m/ID_AUDIO_NCH=0*([1-9]\d*)/m;

So I modified the script to look for MPG2 rather then MPEG[12] and still get the same error.

Attachments (1)

mplayerident1004_20120723172700.mpg.txt (14.0 KB) - added by anothersname@… 9 years ago.
manual mplayer ident output

Download all attachments as: .zip

Change History (8)

comment:1 Changed 9 years ago by Kenni Lund [kenni a kelu dot dk]

Priority: blockerminor
Severity: highlow

Please read the TicketHowTo before creating tickets.

comment:2 Changed 9 years ago by anothersname@…

I had read the Howto.

If you're referring to running debug mode it adds nothing to the information above but I include it here for completeness.

$ nuvexport --mencoder --debug

Loading MythTV recording info. 62%

Using mencoder for exporting. What would you like to do?

  1. Export to XviD (using mencoder)
  2. Export to H.264/MP3 (using mencoder)
  3. Export to H.264/AAC (using mencoder)
  4. Export to .nuv and .sql
  1. Quit

Choose a function: 1

You have recorded the following shows:

  1. BBC News at Ten (2 episodes)
  2. Carry On Henry (1 episode)
  3. Come Dine with Me (10 episodes)
  4. Jerry Springer (1 episode)
  5. Line of Duty (1 episode)
  6. Make Bradford British (1 episode)
  7. Pokerstars (1 episode)
  8. Taken (2 episodes)
  9. The Front Line (1 episode)
  1. The Killing (1 episode)
  2. The Thick of It (1 episode)
  1. Quit

Choose a show: 3

Use of uninitialized value $info{"video_type"} in string eq at /usr/share/perl5/MythTV/ line 327, <STDIN> line 2. Stream type 'lavfpref' is not an mpeg, and will not work with this program.

Cleaning up temp files.

It matters not whether I run using mencoder or native mode, nor does it matter which program I pick to transcode as they all generate the same error.

comment:3 Changed 9 years ago by beirdo

Owner: changed from xris to beirdo
Status: newassigned

Changed 9 years ago by anothersname@…

manual mplayer ident output

comment:4 Changed 9 years ago by anothersname@…

I have attached a Manual mplayer output report for one of my files.

As can be seen on line 203 of the uplaoded file the line begins

Video: .......

This seems to be what the perl script is expecting on line 314

Where at that point the perl script seems to be trying to analyse that nature of the input file.

However the perl script seems to be looking for the phrase "MPEG[12] | H264" so either MPEG or H264 whereas Mplayer now outputs MPG2 so missing the E.

I'm not a perl scripter but I tried to modify this line to account for this change and the error still exists.

Ideas or suggestions welcome

comment:5 Changed 9 years ago by beirdo

That should be all the info I need. I'll get to it soon.

comment:6 Changed 5 years ago by rh3@…

Just encountered this error, four years later. Switching from mplayer2 to mplayer seems to have solved it.

comment:7 Changed 11 months ago by Stuart Auchterlonie

Resolution: Won't Fix
Status: assignedclosed

Closing old tickets.

Note: See TracTickets for help on using tickets.