Render DVD NTSC 16:9 VOB doesn't have any audio

To reproduce:
KDENLIVE build 0.7.9 rev. 5427

Project defined as either DVD Wide screen NTSC or HD 1080p 29.97 fps
add 1 clip (either MTS or MKV) source file format is 1080p 30 fps, 45 seconds long
Drag it to video 1
Pressing Play in Clip Monitor and Project Monitor both play the expected audio
Press the Render button
Destination DVD
Format NTSC
Scanning Auto
Either Export Audio or Export Audio Automatic
Encoder threads either 1 or 2 (CPU is Intel Core i5)
Render to File

Play the rendered VOB file in VLC,Xine, Kaffeine. Picture looks great, Audio is mute.

Re-render the same project as YouTube 1280x720 and the Audio is present.

Forums:

Works for me. Nothing special in latest version of MLT that would affect this. Used 8 encoder threads. Using ffmpeg v0.6.1. Nothing special in ffmpeg audio encoding parameters for these render presets:
acodec=ac3 ab=192k ar=48000
(ac=2 is implied and set by MLT based on its audio channel settings)

That is good news.

Any tips on what I can/should change/check? Maybe install ffmpeg from source as well?

OpenSuse 11.3
KDE 4.5.5
Kdenlive and MLT installed from source

ffmpeg installed from Packman Repository version 0.6.26387svn-1.pm.3.5
ffmpeg -version
FFmpeg version SVN-r26387, Copyright (c) 2000-2011 the FFmpeg developers
built on Feb 9 2011 23:26:26 with gcc 4.5.0 20100604 [gcc-4_5-branch revision 160292]
configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-libxvid --enable-postproc --enable-gpl --enable-x11grab --extra-cflags='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fPIC -I/usr/include/gsm -I/usr/include/openjpeg' --enable-debug --disable-stripping --enable-libschroedinger --enable-libdirac --enable-libgsm --enable-avfilter --enable-libvpx --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libdc1394 --enable-pthreads
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0
FFmpeg SVN-r26387
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0

Thanks

OK
More info

Running ffmpeg from the command line I can get good results if I alter the command line. The first try is based on the values from the render project DVD NTSC 16:9 VOB settings.

f=dvd vcodec=mpeg2video acodec=ac3 s=720x480 b=6000k maxrate=9000k minrate=0 bufsize=1835008 mux_packet_s=2048 mux_rate=10080000 ab=192k ar=48000 g=18 me_range=63 trellis=1 profile=dv_ntsc_wide

The fourth try removed 3 parameters. So it looks like my version of ffmpeg can create a VOB with sound.

I'm not sure where to go from here. CLI ffmpeg won't even run with the extra parameters, but when kdenlive does it, I do get the VOB, minus the sound.

1st try
****************
ffmpeg -i 2-2-11-dave-outside-dr-bobs.MTS -f dvd -vcodec mpeg2video -acodec ac3 -s 720x480 -b 6000k -maxrate 9000k -minrate 0 -bufsize 1835008 -mux_packet_s 2048 -mux_rate 10080000 -ab 192k -ar 48000 -g 18 -me_range 63 -trellis 1 -profile dv_ntsc_wide kdenlive-dvd.vob
FFmpeg version SVN-r26387, Copyright (c) 2000-2011 the FFmpeg developers
built on Feb 9 2011 23:26:26 with gcc 4.5.0 20100604 [gcc-4_5-branch revision 160292]
configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-libxvid --enable-postproc --enable-gpl --enable-x11grab --extra-cflags='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fPIC -I/usr/include/gsm -I/usr/include/openjpeg' --enable-debug --disable-stripping --enable-libschroedinger --enable-libdirac --enable-libgsm --enable-avfilter --enable-libvpx --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libdc1394 --enable-pthreads
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 59.94 (60000/1001)
Input #0, mpegts, from '2-2-11-dave-outside-dr-bobs.MTS':
Duration: 00:00:45.56, start: 0.801622, bitrate: 16139 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 59.96 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s
Stream #0.2[0x1200]: Subtitle: pgssub
Unrecognized option 'mux_packet_s'

2nd try without mux_packet_s
****************
ffmpeg -i 2-2-11-dave-outside-dr-bobs.MTS -f dvd -vcodec mpeg2video -acodec ac3 -s 720x480 -b 6000k -maxrate 9000k -minrate 0 -bufsize 1835008 -mux_rate 10080000 -ab 192k -ar 48000 -g 18 -me_range 63 -trellis 1 -profile dv_ntsc_wide kdenlive-dvd.vob
FFmpeg version SVN-r26387, Copyright (c) 2000-2011 the FFmpeg developers
built on Feb 9 2011 23:26:26 with gcc 4.5.0 20100604 [gcc-4_5-branch revision 160292]
configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-libxvid --enable-postproc --enable-gpl --enable-x11grab --extra-cflags='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fPIC -I/usr/include/gsm -I/usr/include/openjpeg' --enable-debug --disable-stripping --enable-libschroedinger --enable-libdirac --enable-libgsm --enable-avfilter --enable-libvpx --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libdc1394 --enable-pthreads
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 59.94 (60000/1001)
Input #0, mpegts, from '2-2-11-dave-outside-dr-bobs.MTS':
Duration: 00:00:45.56, start: 0.801622, bitrate: 16139 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 59.96 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s
Stream #0.2[0x1200]: Subtitle: pgssub
Unrecognized option 'mux_rate'

3rd try also without mux_rate
****************
ffmpeg -i 2-2-11-dave-outside-dr-bobs.MTS -f dvd -vcodec mpeg2video -acodec ac3 -s 720x480 -b 6000k -maxrate 9000k -minrate 0 -bufsize 1835008 -ab 192k -ar 48000 -g 18 -me_range 63 -trellis 1 -profile dv_ntsc_wide kdenlive-dvd.vobFFmpeg version SVN-r26387, Copyright (c) 2000-2011 the FFmpeg developers
built on Feb 9 2011 23:26:26 with gcc 4.5.0 20100604 [gcc-4_5-branch revision 160292]
configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-libxvid --enable-postproc --enable-gpl --enable-x11grab --extra-cflags='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fPIC -I/usr/include/gsm -I/usr/include/openjpeg' --enable-debug --disable-stripping --enable-libschroedinger --enable-libdirac --enable-libgsm --enable-avfilter --enable-libvpx --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libdc1394 --enable-pthreads
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 59.94 (60000/1001)
Input #0, mpegts, from '2-2-11-dave-outside-dr-bobs.MTS':
Duration: 00:00:45.56, start: 0.801622, bitrate: 16139 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 59.96 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s
Stream #0.2[0x1200]: Subtitle: pgssub
[NULL @ 0x62d270] [Eval @ 0x7ffff4cc6f60] Undefined constant or missing '(' in 'dv_ntsc_wide'
[NULL @ 0x62d270] Unable to parse option value "dv_ntsc_wide"
Invalid value 'dv_ntsc_wide' for option 'profile'

4th try also without profile
****************
ffmpeg -i 2-2-11-dave-outside-dr-bobs.MTS -f dvd -vcodec mpeg2video -acodec ac3 -s 720x480 -b 6000k -maxrate 9000k -minrate 0 -bufsize 1835008 -ab 192k -ar 48000 -g 18 -me_range 63 -trellis 1 kdenlive-dvd.vob
FFmpeg version SVN-r26387, Copyright (c) 2000-2011 the FFmpeg developers
built on Feb 9 2011 23:26:26 with gcc 4.5.0 20100604 [gcc-4_5-branch revision 160292]
configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-libxvid --enable-postproc --enable-gpl --enable-x11grab --extra-cflags='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fPIC -I/usr/include/gsm -I/usr/include/openjpeg' --enable-debug --disable-stripping --enable-libschroedinger --enable-libdirac --enable-libgsm --enable-avfilter --enable-libvpx --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libdc1394 --enable-pthreads
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 59.94 (60000/1001)
Input #0, mpegts, from '2-2-11-dave-outside-dr-bobs.MTS':
Duration: 00:00:45.56, start: 0.801622, bitrate: 16139 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 59.96 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s
Stream #0.2[0x1200]: Subtitle: pgssub
File 'kdenlive-dvd.vob' already exists. Overwrite ? [y/N] y
[buffer @ 0x669350] w:1920 h:1080 pixfmt:yuv420p
[scale @ 0x669720] w:1920 h:1080 fmt:yuv420p -> w:720 h:480 fmt:yuv420p flags:0xa0000004
Output #0, dvd, to 'kdenlive-dvd.vob':
Metadata:
encoder : Lavf52.93.0
Stream #0.0: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=2-31, 6000 kb/s, 90k tbn, 59.94 tbc
Stream #0.1: Audio: ac3, 48000 Hz, stereo, flt, 192 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 2730 fps= 50 q=2.3 Lsize= 35266kB time=45.53 bitrate=6345.4kbits/s dup=1365 drop=0
video:33526kB audio:1068kB global headers:0kB muxing overhead 1.941736%

I recently posted a bug report on this:-
http://www.kdenlive.org/mantis/view.php?id=2010

Since then more recent builds including the latest build Version 0.7.9 (rev. 5442) today, I find that the renderer crashes. Since the crash is handled there is no gdb output to look at.

If it is any use I have attached the complete terminal output from my script build of kdenlive / ffmpeg / mlt / fre0r.

I also find that the same version of ffmpeg will create a vob with sound, but does not accept all the parameters used by kdenlive, which were :

f=dvd vcodec=mpeg2video acodec=ac3 s=720x480 b=6000k maxrate=9000k minrate=0 bufsize=1835008 mux_packet_s=2048 mux_rate=10080000 ab=192k ar=48000 g=18 me_range=63 trellis=1 profile=dv_ntsc_wide pass=2

Without mux_packet_s, mux_rate and profile it encodes with sound OK.

If there is any way to trap the command sent to ffmpeg, then I am more than happy to patch a build and test.

Thanks for the response barjac.

Between your bug report and my forum post, I'm sure a resolution can be found. I too am willing to help track this down, however, I am currently at the limit of my knowledge.

Feel free to link this forum post with your bug report if you find it helpful.

Indeed mux_rate and mux_packet_s are invalid parameter names. I fixed that in kdenlive svn. I do not yet know if it fixes the problem - I did not reproduce it with ffmpeg 0.6.1, but testing very recent version is crashing as barjac pointed out, and I am looking into that next.

To fix those parameters before upgrading, customize the profile and change mux_rate to muxrate and mux_packet_s to packetsize.

Bug resolved
http://www.kdenlive.org/mantis/view.php?id=2010

There is no workaround with current release versions other than to use an older version of ffmpeg (last release 0.6.1).

Confirmed fixed.

Kdenlive 0.7.9 rev 5484
MLT 0.6.3 from git on Mar 7, 2011

I have successfully created the VOB file with sound.
I have successfully created the DVD ISO from the DVD Wizard inside Kdenlive. Simple menu system with just the play button.

ISO played with VLC. Play button worked. Sound in sync with video.

My ffmpeg version is from Packman:
ffmpeg -version
FFmpeg version SVN-r201102261447, Copyright (c) 2000-2011 the FFmpeg developers
built on Mar 6 2011 10:01:52 with gcc 4.5.0 20100604 [gcc-4_5-branch revision 160292]
configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-libxvid --enable-postproc --enable-gpl --enable-x11grab --extra-cflags='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fPIC -I/usr/include/gsm -I/usr/include/openjpeg' --enable-debug --disable-stripping --enable-libschroedinger --enable-libdirac --enable-libgsm --enable-avfilter --enable-libvpx --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libdc1394 --enable-pthreads

You guys rock!
Thanks