danielgtaylor / arista

Arista Transcoder
http://www.transcoder.org/
GNU Lesser General Public License v2.1
120 stars 19 forks source link

ZeroDivisionError: float division by zero #95

Open Hooloovoo opened 13 years ago

Hooloovoo commented 13 years ago

Hi,

I was trying to transcode a video file (a .vob) and I got the following error, no matter what device preset I used:

$ arista-gtk Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/arista/discoverer.py", line 351, in _notify_caps_cb self.videowidth = caps[0]["width"] KeyError: 'width' Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/arista/discoverer.py", line 351, in _notify_caps_cb self.videowidth = caps[0]["width"] KeyError: 'width' Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/arista/transcoder.py", line 223, in _got_info self._setup_pass() File "/usr/lib/python2.7/dist-packages/arista/transcoder.py", line 375, in _setup_pass height = int((float(wmin) / owidth) * oheight) ZeroDivisionError: float division by zero

Some file info from mplayer is: ID_VIDEO_ID=0 ID_AUDIO_ID=128 ID_FILENAME=[removed].vob ID_DEMUXER=mpegps ID_VIDEO_FORMAT=0x10000002 ID_VIDEO_BITRATE=9000000 ID_VIDEO_WIDTH=720 ID_VIDEO_HEIGHT=576 ID_VIDEO_FPS=25.000 ID_VIDEO_ASPECT=0.0000 ID_AUDIO_FORMAT=8192 ID_AUDIO_BITRATE=0 ID_AUDIO_RATE=0 ID_AUDIO_NCH=0 ID_START_TIME=0.06 ID_LENGTH=2519.87 ID_SEEKABLE=1 ID_CHAPTERS=0 ID_VIDEO_CODEC=ffmpeg2 ID_AUDIO_BITRATE=448000 ID_AUDIO_RATE=48000 ID_AUDIO_NCH=2 ID_AUDIO_CODEC=ffac3 ID_EXIT=EOF

Apologies if this is a duplicate, I am getting an error when I try to search issues.

danielgtaylor commented 13 years ago

Hmm, it appears that GStreamer isn't able to find the dimensions of the video for some reason. What does arista-transcode -s show for that VOB? Probably zero dimensions if I had to guess. Can you get me a small sample to try and debug this with?

danielgtaylor commented 13 years ago

I've also just committed d8f3715 which may fix this issue. Can you please try Arista from git and see if that fixes your issue? Instructions on how to do that are in the main README here on github!

Hooloovoo commented 13 years ago

I tried arista from git and it failed with a "not a recognised media file" error and nothing further on the command line. arista-transcode -s gives absolutely nothing (not 0).

I have emailed you about the sample of the file.

danielgtaylor commented 13 years ago

The error seems to be fixed, but the file is not supported by GStreamer for some reason. This might be an upstream issue. Can Totem play the file?

Hooloovoo commented 13 years ago

On 20/07/11 01:53, danielgtaylor wrote:

The error seems to be fixed, but the file is not supported by GStreamer for some reason. This might be an upstream issue. Can Totem play the file?

Yes, Totem plays the file fine. I just did a git pull and I still get the ZeroDivisionError on my machine.

danielgtaylor commented 13 years ago

Any chance of me getting a sample of the file? E.g. cutting a piece with dd if=/path/to/input.vob of=/path/to/output.vob bs=1024 count=1024 and then making sure the output.vob still plays in Totem?

Hooloovoo commented 13 years ago

On 21/07/11 15:29, danielgtaylor wrote:

Any chance of me getting a sample of the file? E.g. cutting a piece with dd if=/path/to/input.vob of=/path/to/output.vob bs=1024 count=1024 and then making sure the output.vob still plays in Totem?

http://www.whitehouse.org.nz/test.vob

I emailed you the link a while ago, but must have had your address incorrect.

danielgtaylor commented 13 years ago

Ah yeah sorry about that. I remember the email now. It arrived just before we had our daughter so it got a bit lost! The GPG key you used is no longer valid and I'm unable to revoke it due to a hard drive failure, so thanks for the link above. I can confirm the issue and am working on a fix.

danielgtaylor commented 13 years ago

I believe this is now fixed in e71691b. The problem involved using uridecodebin (which uses decodebin2) to try and fetch metadata. For this file (and I've discovered some other files too) decodebin2 fails miserably. Switching back to the original discoverer.py implementation I noticed it uses decodebin instead and works, so I've fallen back to using decodebin in Arista for discovering metadata, then using the newer elements during the actual transcoding.

Please try and confirm the fix!

Hooloovoo commented 13 years ago

On 22/07/11 06:11, danielgtaylor wrote:

I believe this is now fixed in e71691b. The problem involved using uridecodebin (which uses decodebin2) to try and fetch metadata. For this file (and I've discovered some other files too) decodebin2 fails miserably. Switching back to the original discoverer.py implementation I noticed it uses decodebin instead and works, so I've fallen back to using decodebin in Arista for discovering metadata, then using the newer elements during the actual transcoding. Please try and confirm the fix!

Brilliant, thanks. I tested again with the old revision and confirmed it failed. I then did a git pull and it is working fine. Great work!!!