[FFmpeg-user] How to convert music into DTS encoded WAV file?

Nomis101 🐝 Nomis101 at web.de
Wed Aug 10 12:40:44 EEST 2016


Hi, ffmpeg user list. I have a problem that I can not solve and hope you
can help me.

I found out, that I can listen to 5.1 surround music over iTunes /
Airplay if the music is an dts-encoded WAV file (44.1 kHz, 16 Bit). This
means I have to convert all my surround music, mostly *.dts, *.flac or
*.ac3, into this format. Everything I've tried did not produce a WAV
file that imports into iTunes.
The format that I need is the following:

/$ ffmpeg -i /Users/Music/test.wav
ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.33.1)
  configuration: --enable-avisynth --enable-fontconfig --enable-gpl
--enable-libass --enable-libbluray --enable-libfreetype
--enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopus --enable-libschroedinger
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265
--enable-libxvid --enable-version3 --disable-ffplay
--disable-indev=qtkit --disable-indev=x11grab_xcb --enable-swscale
--enable-avfilter --enable-avresample --enable-lzma --enable-gnutls
--enable-libfribidi --enable-vda --enable-videotoolbox --enable-yasm
--enable-postproc --enable-nonfree --enable-libfdk-aac --enable-libfaac
--enable-librtmp --enable-opencl --enable-openal --enable-libcdio
--enable-libssh --enable-openssl --enable-lto --enable-pic
--extra-cflags='-fno-builtin-memset -fstack-protector-strong -fwrapv
-march=native -mtune=native -fvectorize -fslp-vectorize
-fno-strict-aliasing -D_FORTIFY_SOURCE=2 -mfpmath=sse'
--extra-cxxflags='-fno-builtin-memset -fstack-protector-strong -fwrapv
-march=native -mtune=native -fvectorize -fslp-vectorize
-fno-strict-aliasing -D_FORTIFY_SOURCE=2 -mfpmath=sse'
--extra-ldflags=-fstack-protector-strong
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 41.100 / 57. 41.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 47.100 /  6. 47.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, wav, from '/Users/Music/test.wav':
  Duration: 00:04:47.37, bitrate: 1411 kb/s
    Stream #0:0: Audio: dts (DTS) ([1][0][0][0] / 0x0001), 44100 Hz,
5.1(side), fltp
At least one output file must be specified/


You can find a short sample of a proper formatted file here. With
Quicktime you will only get some noise. To hear the music you need VLC,
which can decode the dts.
http://polysom.verilite.de/tmp/test.zip


The most promising command so far was:/
//$ ffmpeg -i /Volumes/Macintosh/EREDV946.flac -ar 44100 -b:a 1411k
-acodec pcm_s16le /Volumes/Macintosh/EREDV946.wav//
//ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers//
//  built with Apple LLVM version 8.0.0 (clang-800.0.33.1)//
//  configuration: --enable-avisynth --enable-fontconfig --enable-gpl
--enable-libass --enable-libbluray --enable-libfreetype
--enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopus --enable-libschroedinger
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265
--enable-libxvid --enable-version3 --disable-ffplay
--disable-indev=qtkit --disable-indev=x11grab_xcb --enable-swscale
--enable-avfilter --enable-avresample --enable-lzma --enable-gnutls
--enable-libfribidi --enable-vda --enable-videotoolbox --enable-yasm
--enable-postproc --enable-nonfree --enable-libfdk-aac --enable-libfaac
--enable-librtmp --enable-opencl --enable-openal --enable-libcdio
--enable-libssh --enable-openssl --enable-lto --enable-pic
--extra-cflags='-fno-builtin-memset -fstack-protector-strong -fwrapv
-march=native -mtune=native -fvectorize -fslp-vectorize
-fno-strict-aliasing -D_FORTIFY_SOURCE=2 -mfpmath=sse'
--extra-cxxflags='-fno-builtin-memset -fstack-protector-strong -fwrapv
-march=native -mtune=native -fvectorize -fslp-vectorize
-fno-strict-aliasing -D_FORTIFY_SOURCE=2 -mfpmath=sse'
--extra-ldflags=-fstack-protector-strong//
//  libavutil      55. 28.100 / 55. 28.100//
//  libavcodec     57. 48.101 / 57. 48.101//
//  libavformat    57. 41.100 / 57. 41.100//
//  libavdevice    57.  0.101 / 57.  0.101//
//  libavfilter     6. 47.100 /  6. 47.100//
//  libavresample   3.  0.  0 /  3.  0.  0//
//  libswscale      4.  1.100 /  4.  1.100//
//  libswresample   2.  1.100 /  2.  1.100//
//  libpostproc    54.  0.100 / 54.  0.100//
//Input #0, flac, from '/Volumes/Macintosh/EREDV946.flac'://
//  Metadata://
//    MAJOR_BRAND     : mp42//
//    MINOR_VERSION   : 512//
//    COMPATIBLE_BRANDS: isomiso2avc1mp41//
//    ENCODER         : Lavf57.41.100//
//  Duration: 01:36:17.96, start: 0.000000, bitrate: 4634 kb/s//
//    Stream #0:0: Audio: flac, 48000 Hz, 5.1(side), s32 (24 bit)//
//[wav @ 0x7fa20f803200] Using AVStream.codec to pass codec parameters
to muxers is deprecated, use AVStream.codecpar instead.//
//Output #0, wav, to '/Volumes/Macintosh/EREDV946.wav'://
//  Metadata://
//    MAJOR_BRAND     : mp42//
//    MINOR_VERSION   : 512//
//    COMPATIBLE_BRANDS: isomiso2avc1mp41//
//    ISFT            : Lavf57.41.100//
//    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
5.1(side), s16 (24 bit), 4233 kb/s//
//    Metadata://
//      encoder         : Lavc57.48.101 pcm_s16le//
//Stream mapping://
//  Stream #0:0 -> #0:0 (flac (native) -> pcm_s16le (native))//
//Press [q] to stop, [?] for help//
//size= 2986033kB time=01:36:17.96 bitrate=4233.6kbits/s speed=79.7x    //
//video:0kB audio:2986033kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 0.000011%//
//
//
//$ ffmpeg -i /Volumes/Macintosh/EREDV946.wav -strict -2 -acodec dts
/Volumes/Macintosh/EREDV946_2.wav//
//ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers//
//  built with Apple LLVM version 8.0.0 (clang-800.0.33.1)//
//  configuration: --enable-avisynth --enable-fontconfig --enable-gpl
--enable-libass --enable-libbluray --enable-libfreetype
--enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopus --enable-libschroedinger
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265
--enable-libxvid --enable-version3 --disable-ffplay
--disable-indev=qtkit --disable-indev=x11grab_xcb --enable-swscale
--enable-avfilter --enable-avresample --enable-lzma --enable-gnutls
--enable-libfribidi --enable-vda --enable-videotoolbox --enable-yasm
--enable-postproc --enable-nonfree --enable-libfdk-aac --enable-libfaac
--enable-librtmp --enable-opencl --enable-openal --enable-libcdio
--enable-libssh --enable-openssl --enable-lto --enable-pic
--extra-cflags='-fno-builtin-memset -fstack-protector-strong -fwrapv
-march=native -mtune=native -fvectorize -fslp-vectorize
-fno-strict-aliasing -D_FORTIFY_SOURCE=2 -mfpmath=sse'
--extra-cxxflags='-fno-builtin-memset -fstack-protector-strong -fwrapv
-march=native -mtune=native -fvectorize -fslp-vectorize
-fno-strict-aliasing -D_FORTIFY_SOURCE=2 -mfpmath=sse'
--extra-ldflags=-fstack-protector-strong//
//  libavutil      55. 28.100 / 55. 28.100//
//  libavcodec     57. 48.101 / 57. 48.101//
//  libavformat    57. 41.100 / 57. 41.100//
//  libavdevice    57.  0.101 / 57.  0.101//
//  libavfilter     6. 47.100 /  6. 47.100//
//  libavresample   3.  0.  0 /  3.  0.  0//
//  libswscale      4.  1.100 /  4.  1.100//
//  libswresample   2.  1.100 /  2.  1.100//
//  libpostproc    54.  0.100 / 54.  0.100//
//Input #0, wav, from '/Volumes/Macintosh/EREDV946.wav'://
//  Metadata://
//    encoder         : Lavf57.41.100//
//  Duration: 01:36:17.96, bitrate: 4233 kb/s//
//    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
5.1(side), s16, 4233 kb/s//
//[wav @ 0x7fceca003800] Using AVStream.codec to pass codec parameters
to muxers is deprecated, use AVStream.codecpar instead.//
//Output #0, wav, to '/Volumes/Macintosh/EREDV946_2.wav'://
//  Metadata://
//    ISFT            : Lavf57.41.100//
//    Stream #0:0: Audio: dts (dca) ([1] [0][0] / 0x2001), 44100 Hz,
5.1(side), s32, 1411 kb/s//
//    Metadata://
//      encoder         : Lavc57.48.101 dca//
//Stream mapping://
//  Stream #0:0 -> #0:0 (pcm_s16le (native) -> dts (dca))//
//Press [q] to stop, [?] for help//
//size=  995346kB time=01:36:17.97 bitrate=1411.2kbits/s speed=12.1x    //
//video:0kB audio:995346kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 0.000011%/


But this does not play with VLC or import into iTunes. I think maybe
because the thing in the bracket is not correct? It should be
"([1][0][0][0] / 0x0001)", but it is "([1] [0][0] / 0x2001)".
Can somebody help me on how to generate a properly dts-encoded WAV file
using ffmpeg that imports into iTunes?

Thanks,
Simon


More information about the ffmpeg-user mailing list