#532 Cannot open output format with libav 0.8 and dvdstyler 2.5.1 in Debian

common
closed
nobody
None
5
2014-08-20
2013-08-19
Fabrice
No

Hi,

I'm packaging dvdstyler 2.5.1 for Debian/Ubuntu, and I'm not able to generate the menus. I'm getting the following message:
dvdstyler -e
[mpeg @ 0x94deac0] max_analyze_duration reached
[mpeg @ 0x94e1180] max_analyze_duration reached
DVDStyler v2.5.1
Linux 3.10-2-686-pae i686
Libav: libavformat 54.20.3, libavcodec 54.35.0, libavutil 52.3.0
Preparando
Limpiando carpeta de trabajo
Buscando fichero transcodificados en el caché
Generando menús
Generando menú 1 de 2
Crear menú mpeg
Cannot open output format
Error creación de menú

After checking the source of that error, it seems that some initialization is missing. I added the following lines, and things are getting better:
diff --git a/src/mediaenc_ffmpeg.cpp b/src/mediaenc_ffmpeg.cpp
index 83623b7..3006355 100644
--- a/src/mediaenc_ffmpeg.cpp
+++ b/src/mediaenc_ffmpeg.cpp
@@ -74,6 +74,8 @@ void print_error(const char filename, int err) {
bool wxFfmpegMediaEncoder::BeginEncode(const wxString& fileName, VideoFormat videoFormat, AudioFormat audioFormat,
AspectRatio aspectRatio, int videoBitrate) {
EndEncode();
+ av_register_all();
+ avcodec_register_all();
AVOutputFormat
outputFormat = av_guess_format("dvd", NULL, NULL);
if (audioFormat == afNONE)
outputFormat = av_guess_format(NULL, (const char*) fileName.ToUTF8(), NULL);

When running the version with this lines, this is what I am getting:
./dvdstyler -e
[mpeg @ 0xa9ba1a0] max_analyze_duration reached
[mpeg @ 0xa820980] max_analyze_duration reached
DVDStyler v2.5.1
Linux 3.10-2-686-pae i686
Libav: libavformat 54.20.3, libavcodec 54.35.0, libavutil 52.3.0
Preparando
Limpiando carpeta de trabajo
Buscando fichero transcodificados en el caché
Generando menús
Generando menú 1 de 2
Crear menú mpeg
Output #0, dvd, to '/tmp/dvd-tmp/menu1-0.mpg_bg.mpg':
Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 8:9 DAR 4:3], q=2-31, 6000 kb/s, 90k tbn, 29.97 tbc
Stream #0.1: Audio: ac3, 48000 Hz, 2 channels, s16, 64 kb/s
[ac3 @ 0xad4a560] channel_layout not specified
[ac3 @ 0xad4a560] No channel layout specified. The encoder will guess the layout, but it might be incorrect.
Multiplexando subtítulos (botones) en el mpeg
Menu has 1 group(s) of changeable colours.
Ejecución de comando: spumux -P -s 0 "/tmp/dvd-tmp/menu1-0.mpg_spumux.xml"
DVDAuthor::spumux, version 0.7.0.
Build options: gnugetopt imagemagick iconv freetype fribidi fontconfig
Send bug reports to dvdauthor-users@lists.sourceforge.net
INFO: no default video format, must explicitly specify NTSC or PAL
INFO: Picture /tmp/dvd-tmp/menu1-0.mpg_buttons.png had 1 colors
INFO: Picture /tmp/dvd-tmp/menu1-0.mpg_highlight.png had 4 colors
INFO: Picture /tmp/dvd-tmp/menu1-0.mpg_select.png had 4 colors
INFO: Pickbuttongroups, success with 1 groups, useimg=1
INFO: 0 bytes of data written
INFO: 8192 bytes of data written
INFO: 14336 bytes of data written
INFO: 22528 bytes of data written
INFO: 28672 bytes of data written
INFO: Found EOF in .sub file.
INFO: Max_sub_size=94
INFO: 36864 bytes of data written
INFO: 1 subtitles added, 0 subtitles skipped, stream: 32, offset: 1.00
Generando menú 2 de 2
Crear menú mpeg
Output #0, dvd, to '/tmp/dvd-tmp/menu1-1.mpg_bg.mpg':
Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 8:9 DAR 4:3], q=2-31, 6000 kb/s, 90k tbn, 29.97 tbc
Stream #0.1: Audio: ac3, 48000 Hz, 2 channels, s16, 64 kb/s
[ac3 @ 0xabbf6e0] channel_layout not specified
[ac3 @ 0xabbf6e0] No channel layout specified. The encoder will guess the layout, but it might be incorrect.
Multiplexando subtítulos (botones) en el mpeg
Menu has 2 group(s) of changeable colours.
Ejecución de comando: spumux -P -s 0 "/tmp/dvd-tmp/menu1-1.mpg_spumux.xml"
DVDAuthor::spumux, version 0.7.0.
Build options: gnugetopt imagemagick iconv freetype fribidi fontconfig
Send bug reports to dvdauthor-users@lists.sourceforge.net
INFO: no default video format, must explicitly specify NTSC or PAL
INFO: Picture /tmp/dvd-tmp/menu1-1.mpg_buttons.png had 1 colors
INFO: Picture /tmp/dvd-tmp/menu1-1.mpg_highlight.png had 4 colors
INFO: Picture /tmp/dvd-tmp/menu1-1.mpg_select.png had 7 colors
INFO: Pickbuttongroups, success with 2 groups, useimg=1
INFO: 0 bytes of data written
INFO: 6144 bytes of data written
INFO: 12288 bytes of data written
INFO: 18432 bytes of data written
INFO: 24576 bytes of data written
INFO: Found EOF in .sub file.
INFO: Max_sub_size=1290
INFO: 30720 bytes of data written
INFO: 1 subtitles added, 0 subtitles skipped, stream: 32, offset: 1.00
Transcodificando/remultiplexando
Add file to cache:/tmp/dvd-cache/entry001.vob
Transcodificar fichero de vídeo./home/fabrice/centaur_2.mpg
Need encode: true, use mplex: true
recordingTime: 13.980633
Ejecución de comando: avconv -i "/home/fabrice/centaur_2.mpg" -i "/dev/zero" -t 13.980633 -f mpeg2video -c:v:0 mpeg2video -s 720x576 -r 25 -g 15 -b:v:0 8000000 -maxrate:v:0 8000000 -minrate:v:0 8000000 -bufsize:v:0 1835008 -packetsize 2048 -muxrate 10080000 -b:a 192000 -ar 48000 -map 0:0 "/tmp/dvd-cache/entry001.vob.m2v" -t 13.980633 -f ac3 -b:a 192000 -ar 48000 -c:a:0 ac3 -map 0:1 "/tmp/dvd-cache/entry001.vob.audio0"
avconv version 9.8-6:9.8-2, Copyright (c) 2000-2013 the Libav developers
built on Aug 13 2013 17:29:38 with gcc 4.8 (Debian 4.8.1-8)
[mpeg @ 0x9e5fee0] max_analyze_duration reached
Input #0, mpeg, from '/home/fabrice/centaur_2.mpg':
Duration: 00:00:13.98, start: 0.387500, bitrate: 6138 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 6000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
/dev/zero: Invalid data found when processing input
Error de conversión de /home/fabrice/centaur_2.mpg

Is there something wrong with my setup or is register call required with libav 0.8?

Thanks,
Fabrice

Discussion

  • Fabrice
    Fabrice
    2013-08-20

    Hi,

    Fyi, if I change the command line to get rid of -i "/dev/zero", conversion seems to ends correctly. I did that by tweaking ProgressDlg.cpp (and commenting out the part that add that fake audio). Don't know if this is the right thing to do, though.

    Fabrice

     
  • Alex Thuering
    Alex Thuering
    2013-08-23

    Hi Fabrice,

    av_register_all() is called in wxFfmpegMediaDecoder::Init()
    Does your file contain an audio stream?
    I fixed transcoding of video files without audio streams under linux in DVDStyler-2.5.2.tar.bz2 (published today, 2013-08-23).

    Alex

     
  • Alex Thuering
    Alex Thuering
    2013-11-29

    • status: open --> closed