Modify

Opened 5 years ago

Last modified 16 months ago

#10868 assigned Bug Report - Crash

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

Description

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/Recording.pm 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@… 5 years ago.
manual mplayer ident output

Download all attachments as: .zip

Change History (7)

comment:1 Changed 5 years ago by kenni

  • Priority changed from blocker to minor
  • Severity changed from high to low

Please read the TicketHowTo before creating tickets.

comment:2 Changed 5 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/Recording.pm 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 5 years ago by beirdo

  • Owner changed from xris to beirdo
  • Status changed from new to assigned

Changed 5 years ago by anothersname@…

manual mplayer ident output

comment:4 Changed 5 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 Recording.pm 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 5 years ago by beirdo

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

comment:6 Changed 16 months ago by rh3@…

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

Add Comment

Modify Ticket

Action
as assigned The owner will remain beirdo.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.