[Ffmpeg-devel] Subject: -acodec 'copy' fails

Bastian Suess bastian.suess
Sun Jul 31 13:06:28 CEST 2005


I am trying to convert a multi-language VOB-file (from DVD)
to a single-language VOB-file (only german).

=> ffmpeg crashes

=> my command line:
  -vcodec copy -acodec copy -f vob harryff13.vob -map 0.0 -map 0.3

=> Output:  
ffmpeg version CVS, build 4759, Copyright (c) 2000-2004 Fabrice Bellard
  built on Jul 28 2005 20:06:50, gcc: 3.3.3 (SuSE Linux)
Input #0, mpeg, from 'HARRY_POTTER_PHILOSOPHERS_STON1-1.vob':
  Duration: 00:42:39.7, start: 0.052000, bitrate: 6711 kb/s
  Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576, 25.00 
fps, 7500 kb/s
  Stream #0.1[0x80]: Audio: 0x0000
  Stream #0.2[0x82]: Audio: 0x0000
  Stream #0.3[0x81]: Audio: 0x0000
Output #0, vob, to 'harryff13a.vob':
  Stream #0.0: Video: mpeg2video, 720x576, 25.00 fps, q=2-31, 7500 kb/s
  Stream #0.1: Audio: ac3
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.3 -> #0.1
(german translation of floating point execption)

=>I found, that 

1) The call-path
" main() => av_encode() => av_write_header() => av_frac_init() "
causes in av_frac_init() that
	st->time_base.num and st->codec->sample_rate are both zero !
So an Division by zero occures.

2) Something similar happens in
" main() => av_encode() => output_packet() "
ist->st->codec->sample_rate and ist->st->codec->channels
are also both zero.

Simple patching the code to avoid the division by zero
keeps the progam running, but it works only with audio-channel-mapping
to 0.1.

Does everybody knows how to fix it the rigt way?
I guess anywhere around Line 1700 in ffmpeg.c : 
"/* if stream_copy is selected..."


More information about the ffmpeg-devel mailing list