Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm trying to encode some Firefly episodes so that my wife can watch them on her netbook (no DVD drive!).

I'm using dvd::rip and transcode seems to randomly hang during encoding near the end of the file.

If I kill and restart the encoding, it'll sometimes get past the point where it failed, however I've come across one particular chapter where it consistently hangs.

The particular command is:
transcode -H 10 -a 0 -x vob -i ../vob/001-C006 -w 1437,50 -b 160,0,2 -s 1.496 --a52_drc_off -J normalize -f 30,4 -M 2 --export_par 118,100 -y xvid,null --psu_mode --nav_seek firefly1-001-C006-nav.log --no_split --progress_meter 1 --progress_rate 25 -o /dev/null -R 1

The last line it prints is:
encoding frames [0-5900], 59.76 fps, CFT: 0:03:16, (13| 0| 7)


I've also tried doing a 1-pass encode:
transcode -H 10 -a 0 -x vob -i ../vob/001-C002 -w 5 -b 160,0,2 -s 1.496 --a52_drc_off -J normalize -f 30,4 -M 2 --export_par 118,100 -y xvid,null --psu_mode --no_split --progress_meter 1 --progress_rate 1 -o ../avi/001/firefly1-001-C002.avi

sometimes it'll hang after printing:
encoding frames [0-10545], 41.21 fps, CFT: 0:05:51, (17| 0| 3)

And sometimes it'll complete:
[transcode] encoded 10546 frames (-2104 dropped, 0 cloned), clip length 351.88 s


Is there any debugging/further information that I can turn on? Does anybody have any suggestions?

Distro: openSuSE 11.2

Kernel uname -a: Linux challenger 2.6.31.8-0.1-desktop #1 SMP PREEMPT 2009-12-15 23:55:40 +0100 i686 i686 i386 GNU/Linux

Transcode version: transcode-1.1.5-0.pm.8.3.i586

share|improve this question

3 Answers 3

Have you tried another tool, like Handbrake? If it hangs in the same spot maybe you've got scratches on the disc that prevent getting a good rip of the source data.

Other Linux encoding tools to try would be ffmpeg and mencoder.


Update: Read through the Transcode FAQ about various problems. In particular, there's a known issue that results in hangs:

I still have a problem and it hasn't been discussed before.

If your problem is that transcode "hangs" immediately, or even after some time, you may be experiencing the venerable old thread-version problem.

If running transcode this way: "env LD_ASSUME_KERNEL=2.4.0 transcode ..." fixes the problem, then it's thread version issues, not transcode, that's at fault.

See: http://people.redhat.com/drepper/assumekernel.html

This advice seems old and very possibly outdated, but it won't hurt to try. I'm not sure what "venerable old thread-version" means; I assume it's referring to a mismatch between the thread library on your system, and the thread library used to compile the transcode package that you're using. (I'm also assuming you installed transcode as a binary package, probably through your system's package manager, possibly downloaded from a nonstandard repository?)

If that's the case, you may be able to get rid of the mismatch by compiling your own local copy of transcode. (For RPM-based package managers, this entails finding the SRPM that was used to compile your binary transcode package, installing whatever packages are necessary to compile transcode, and using RPM to build a new transcode package.)

share|improve this answer
    
+1 for the ffmpeg solution; doubtful about Handbrake: I tried and it seems not that mature. Do you have a nice experience with that software? –  dag729 Jan 28 '10 at 16:50
    
The data is already ripped to disk and the data is good. As I noted afterwards, I can run it twice and have it hang once. –  MikeyB Jan 28 '10 at 16:59
1  
@dag: i don't use any of these tools on a regular basis, just every once in a blue moon. Handbrake's been pretty highly recommended but no, i haven't used it. (also, side note, saying "+1 for this" without actually voting the answer up seems kinda rude.) –  quack quixote Jan 28 '10 at 17:24
    
@quack: I tried but it says "Vote too old to be changed": something happened... –  dag729 Jan 28 '10 at 17:53
1  
I use Handbrake. It's good stuff. Make sure you're using version 0.9.4 or higher. It's a major update. –  Ryan Thompson Jan 28 '10 at 23:03

Really old thread, but since I had the same problem (transcode hanging at the end of every chapter, albeit I'm not using DVD:RIP as the driver for transcode) I figure that perhaps my hacky solution might help somebody. I discovered that transcode just goes to sleep, perhaps waiting for a signal that never arrives or arrived too early. So what I do is detect when that happens and kill transcode with the following bash script:

#!/bin/bash
while ps -C transcode|grep -q transcode; do
  # wait for transcode to actually start encoding
  sleep 15
  # detect when it goes to sleep
  while ps -C transcode --no-headers -o "stat"| grep -q -v "^S"; do
    sleep 1
  done
  echo "transcode process sleeping, waiting ten seconds"
  # sometimes seems to just get the signa/whatever it's waiting for
  sleep 10
  if ps -C transcode --no-headers -o "stat"| grep -q "^S"; then
    echo "still sleeping, killing transcode"
    killall transcode
  fi
  # wait here so that the driver program has a chance of restarting it
  sleep 10
done

This script runs concurrently with the driver program and basically replaces you just looking at the darn process list to see if transcode is sleeping again. There are for sure better ways to write it, but this just works for me and I'm lazy :-)

share|improve this answer

maybe it's not related to the very problem, but you used -o /dev/null, that (if I am not wrong) it is as to say "let drop my output away"...I would try to -o ~/Desktop/firefly_001.avi or whetever extension you wish.

I hope to hear from you soon,

Regards

share|improve this answer
    
-o /dev/null is correct for the first pass of a multi-pass encode. Besides, the problem isn't that no output is produced. –  MikeyB Jan 28 '10 at 16:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.