Folks,

Mjpegtools' utility yuv2lav produces bad data when run from within an Apache perl script handler.  In particular, lavtrans won't open the resulting AVI file.  Furthermore, when read on a WXP box, Windows Media Player 10 complains of "one or more required codecs missing".

Why does this happen?  What can I do to make things work? Do you intend mjpegtools to work with Apache?  I would be happy to perform experiments, or give you short snippets that would duplicate the problem.

       Allen King

cc also sent to: xerces-p-dev@xml.apache.org

--------- Details:

I am running Apache 2.0.54 and mjpegtools 1.8.0 (or earlier 1.6.3) , on Fedora Core 4.

I'm using 'lav2yuv | yuv2lav' to reconstruct a missing Huffman table from .AVI files from my camera. Apache is configured to use a PerlHandler that is my program: Apache::AlbumPAK.  AlbumPAK.pm contains:

...
sub handler {
   ...
   system "lav2yuv +p IMGP0706.AVI >t1";           # construct yuv for Huffman table
   system "yuv2lav t1< -o IMGP0706new.AVI";     # construct AVI with Huffman table
   system "lavtrans -f i -i 3 -o IMGP0706.jpg +p IMGP0706new.AVI";           # create thumbnail


----------- For the failing case, my log files contain:

[Thu Nov 17 16:46:51 2005] [warn] ---------- movie 'IMGP0706.AVI' found
[Thu Nov 17 16:46:51 2005] [warn] lav2yuv +p IMGP0706.AVI | yuv2lav -o IMGP0706.AVI
   INFO: [lav2yuv] Norm set to PAL
   INFO: [lav2yuv] chroma '422' recommended with this input
   INFO: [lav2yuv] set default chroma '420jpeg'
   INFO: [lav2yuv] Repeated frames (for error concealment): 0
[Thu Nov 17 16:46:54 2005] [warn] lavtrans -f i -i 1 -o IMGP0706.jpg +p IMGP0706.AVI
   INFO: [lavtrans] Norm set to PAL
**ERROR: [lavtrans] Error opening /var/www/html/thumbs//051113/IMGP0706.AVI
[Thu Nov 17 16:46:54 2005] [warn] '256': movie IMGP0706.jpg. thumbnail made
  • blue is from print (actually $r->warn) statements, red is lav... program output.
  • I checked (by removing the various lav... programs from /usr/bin) that those are the programs used in all circumstances.
  • Here, the lav2yuv and yuv2lav are connected in one command with a pipe.  Below, they are executed in separate commands.  Behavior as a pipe or as separate seems to be identical.
  • Command line login as apache required modification of  /etc/passwd to use the /bin/bash shell as default shell (default is /sbin/nologin).  This change did not affect the incorrect operation of yuv2lav within the Apache perl script.

----------- In the following, the files with "h" in there name were produced by hand, executing the same command under the user name apache at a bash prompt. The md5sum shows that the intermediate files are the same, but the product of yuv2lav differs in content, but ls shows that lengths are the same.

bash-3.00$ md5sum /var/www/html/pics/051113/tt* IMGP0706*.AVI
6eee2d8fc650969f5deae15ba217c61c  /var/www/html/pics/051113/tt
6eee2d8fc650969f5deae15ba217c61c  /var/www/html/pics/051113/tth
f91693d1f5d7d662d646e04c64f450b4  IMGP0706.AVI
b99d4cc1f6cc86687f55ea3d8865ee80  IMGP0706h.AVI
bash-3.00$ ls -l /var/www/html/pics/051113/tt* IMGP0706*.AVI
-rw-r--r--  1 apache apache 1001628 Nov 19 18:27 IMGP0706.AVI
-rw-r--r--  1 apache apache 1001628 Nov 19 18:32 IMGP0706h.AVI
-rw-r--r--  1 apache apache 8179679 Nov 19 18:27 /var/www/html/pics/051113/tt
-rw-r--r--  1 apache apache 8179679 Nov 19 18:31 /var/www/html/pics/051113/tth


Reply via email to