Lossless conversion of MPEG ADTS MP3 to normal MP3 Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election Results Why I closed the “Why is Kali so hard” questionHow to “reencode” mp3 filesFix error in mp3 fileBacktrack mp3 problemSearch mp3 collection for songs with a certain song lengthmplayer2 playing pictures from mp3How can I *completely* wipe an MP3's metadata?Joining all mp3 links in m3u file into a single mp3 fileMerge mp3 filesNumber format incorrect when writing an MP3 tagList MP3 files and durations

Withdrew £2800, but only £2000 shows as withdrawn on online banking; what are my obligations?

Irreducible of finite Krull dimension implies quasi-compact?

What is the longest distance a player character can jump in one leap?

Does classifying an integer as a discrete log require it be part of a multiplicative group?

Chinese Seal on silk painting - what does it mean?

Dating a Former Employee

2001: A Space Odyssey's use of the song "Daisy Bell" (Bicycle Built for Two); life imitates art or vice-versa?

How to convince students of the implication truth values?

First console to have temporary backward compatibility

For a new assistant professor in CS, how to build/manage a publication pipeline

Is "Reachable Object" really an NP-complete problem?

How does the math work when buying airline miles?

Did MS DOS itself ever use blinking text?

Why are there no cargo aircraft with "flying wing" design?

Generate an RGB colour grid

Trademark violation for app?

How to Make a Beautiful Stacked 3D Plot

How could we fake a moon landing now?

old style "caution" boxes

Can you use the Shield Master feat to shove someone before you make an attack by using a Readied action?

What are the out-of-universe reasons for the references to Toby Maguire-era Spider-Man in ITSV

How to tell that you are a giant?

What does "lightly crushed" mean for cardamon pods?

How to find all the available tools in mac terminal?



Lossless conversion of MPEG ADTS MP3 to normal MP3



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
2019 Community Moderator Election Results
Why I closed the “Why is Kali so hard” questionHow to “reencode” mp3 filesFix error in mp3 fileBacktrack mp3 problemSearch mp3 collection for songs with a certain song lengthmplayer2 playing pictures from mp3How can I *completely* wipe an MP3's metadata?Joining all mp3 links in m3u file into a single mp3 fileMerge mp3 filesNumber format incorrect when writing an MP3 tagList MP3 files and durations



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








6















I have many MP3 audio files which are ADTS encoded. Unfortunately, my car radio doesn't support ADTS, so I need to convert them to normal MP3 files without a transport stream.



There are many people out there who asked the same question, but the only answers I found was converting to wav and then use lameenc to convert it back to MP3



I'm sure there is a way to convert these files without decoding/reencoding them.



I already experimented with ffmpeg/avconv, but the parameter -acodec copy doesn't seem to output anything different than ADTS.



I also played around with GStreamer. Funnily, I think it's the module aacparse which at least understands the format, but it's not a demuxer.



Which tool can I use for this?



$ file badfile.mp3 goodfile.mp3
badfile.mp3: MPEG ADTS, layer III, v2, 64 kbps, 22.05 kHz, JntStereo
goodfile.mp3: Audio file with ID3 version 2.4.0


An example file can be found here (Overview)



Update:
I'm still testing, but it seems that 1) Also lame produces ADTS files and 2) ADTS is not really the problem for my car radio, it must be something different. I'm testing now with different profiles and bitrates, VBR and CBR. But it is still helpful if someone knows something more about ADTS.










share|improve this question
























  • Daniel, are you happy with the received answer? If not, you may put this question on superuser.com, maybe you have better luck there. I'm having a similar problem. See: superuser.com/q/1221209/260636

    – Rodrigo
    Jun 20 '17 at 22:58











  • @Rodrigo Finally I made a series of test files and marked those which were ok. I discovered that the problem was less container-specific than I thought, but the radio didn't support several widely-used bit rates. But I sold the car and so the problem has gone (for me). The way how I produced the test files is probable worth an own answer...

    – Daniel Alder
    Jun 21 '17 at 23:57

















6















I have many MP3 audio files which are ADTS encoded. Unfortunately, my car radio doesn't support ADTS, so I need to convert them to normal MP3 files without a transport stream.



There are many people out there who asked the same question, but the only answers I found was converting to wav and then use lameenc to convert it back to MP3



I'm sure there is a way to convert these files without decoding/reencoding them.



I already experimented with ffmpeg/avconv, but the parameter -acodec copy doesn't seem to output anything different than ADTS.



I also played around with GStreamer. Funnily, I think it's the module aacparse which at least understands the format, but it's not a demuxer.



Which tool can I use for this?



$ file badfile.mp3 goodfile.mp3
badfile.mp3: MPEG ADTS, layer III, v2, 64 kbps, 22.05 kHz, JntStereo
goodfile.mp3: Audio file with ID3 version 2.4.0


An example file can be found here (Overview)



Update:
I'm still testing, but it seems that 1) Also lame produces ADTS files and 2) ADTS is not really the problem for my car radio, it must be something different. I'm testing now with different profiles and bitrates, VBR and CBR. But it is still helpful if someone knows something more about ADTS.










share|improve this question
























  • Daniel, are you happy with the received answer? If not, you may put this question on superuser.com, maybe you have better luck there. I'm having a similar problem. See: superuser.com/q/1221209/260636

    – Rodrigo
    Jun 20 '17 at 22:58











  • @Rodrigo Finally I made a series of test files and marked those which were ok. I discovered that the problem was less container-specific than I thought, but the radio didn't support several widely-used bit rates. But I sold the car and so the problem has gone (for me). The way how I produced the test files is probable worth an own answer...

    – Daniel Alder
    Jun 21 '17 at 23:57













6












6








6


1






I have many MP3 audio files which are ADTS encoded. Unfortunately, my car radio doesn't support ADTS, so I need to convert them to normal MP3 files without a transport stream.



There are many people out there who asked the same question, but the only answers I found was converting to wav and then use lameenc to convert it back to MP3



I'm sure there is a way to convert these files without decoding/reencoding them.



I already experimented with ffmpeg/avconv, but the parameter -acodec copy doesn't seem to output anything different than ADTS.



I also played around with GStreamer. Funnily, I think it's the module aacparse which at least understands the format, but it's not a demuxer.



Which tool can I use for this?



$ file badfile.mp3 goodfile.mp3
badfile.mp3: MPEG ADTS, layer III, v2, 64 kbps, 22.05 kHz, JntStereo
goodfile.mp3: Audio file with ID3 version 2.4.0


An example file can be found here (Overview)



Update:
I'm still testing, but it seems that 1) Also lame produces ADTS files and 2) ADTS is not really the problem for my car radio, it must be something different. I'm testing now with different profiles and bitrates, VBR and CBR. But it is still helpful if someone knows something more about ADTS.










share|improve this question
















I have many MP3 audio files which are ADTS encoded. Unfortunately, my car radio doesn't support ADTS, so I need to convert them to normal MP3 files without a transport stream.



There are many people out there who asked the same question, but the only answers I found was converting to wav and then use lameenc to convert it back to MP3



I'm sure there is a way to convert these files without decoding/reencoding them.



I already experimented with ffmpeg/avconv, but the parameter -acodec copy doesn't seem to output anything different than ADTS.



I also played around with GStreamer. Funnily, I think it's the module aacparse which at least understands the format, but it's not a demuxer.



Which tool can I use for this?



$ file badfile.mp3 goodfile.mp3
badfile.mp3: MPEG ADTS, layer III, v2, 64 kbps, 22.05 kHz, JntStereo
goodfile.mp3: Audio file with ID3 version 2.4.0


An example file can be found here (Overview)



Update:
I'm still testing, but it seems that 1) Also lame produces ADTS files and 2) ADTS is not really the problem for my car radio, it must be something different. I'm testing now with different profiles and bitrates, VBR and CBR. But it is still helpful if someone knows something more about ADTS.







mp3






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 6 '15 at 23:59







Daniel Alder

















asked Jan 3 '15 at 17:22









Daniel AlderDaniel Alder

483618




483618












  • Daniel, are you happy with the received answer? If not, you may put this question on superuser.com, maybe you have better luck there. I'm having a similar problem. See: superuser.com/q/1221209/260636

    – Rodrigo
    Jun 20 '17 at 22:58











  • @Rodrigo Finally I made a series of test files and marked those which were ok. I discovered that the problem was less container-specific than I thought, but the radio didn't support several widely-used bit rates. But I sold the car and so the problem has gone (for me). The way how I produced the test files is probable worth an own answer...

    – Daniel Alder
    Jun 21 '17 at 23:57

















  • Daniel, are you happy with the received answer? If not, you may put this question on superuser.com, maybe you have better luck there. I'm having a similar problem. See: superuser.com/q/1221209/260636

    – Rodrigo
    Jun 20 '17 at 22:58











  • @Rodrigo Finally I made a series of test files and marked those which were ok. I discovered that the problem was less container-specific than I thought, but the radio didn't support several widely-used bit rates. But I sold the car and so the problem has gone (for me). The way how I produced the test files is probable worth an own answer...

    – Daniel Alder
    Jun 21 '17 at 23:57
















Daniel, are you happy with the received answer? If not, you may put this question on superuser.com, maybe you have better luck there. I'm having a similar problem. See: superuser.com/q/1221209/260636

– Rodrigo
Jun 20 '17 at 22:58





Daniel, are you happy with the received answer? If not, you may put this question on superuser.com, maybe you have better luck there. I'm having a similar problem. See: superuser.com/q/1221209/260636

– Rodrigo
Jun 20 '17 at 22:58













@Rodrigo Finally I made a series of test files and marked those which were ok. I discovered that the problem was less container-specific than I thought, but the radio didn't support several widely-used bit rates. But I sold the car and so the problem has gone (for me). The way how I produced the test files is probable worth an own answer...

– Daniel Alder
Jun 21 '17 at 23:57





@Rodrigo Finally I made a series of test files and marked those which were ok. I discovered that the problem was less container-specific than I thought, but the radio didn't support several widely-used bit rates. But I sold the car and so the problem has gone (for me). The way how I produced the test files is probable worth an own answer...

– Daniel Alder
Jun 21 '17 at 23:57










2 Answers
2






active

oldest

votes


















4














There is no way to convert MPEG ADTS to MP3 without decoding and reencoding them. They are fundamentally different formats/encodings. Any conversion utility you use that claims to do a direct conversion is in fact doing that behind the scenes--decoding to some lossless format and reencoding to some version of MP3. With that in mind, I highly recommend sox for audio format conversions. It really isn't exaggerating when it refers to itself as the "Swiss Army Knife of Audio Manipulation." Syntax is simple: sox infile outfile, but the available options put ffmpeg to shame.






share|improve this answer






























    2














    It is some time ago and I don't have the car with the radio anymore. Currently, I can't even say anymore which radio make it was, but here is what I finally did. (The answer is somehow off-topic because the final solution was not exactly what I initially asked. But it's still interesting because it helps detecting problems with limited mp3 players, and I also write this because of the increasing numbers of upvotes for the question :-). The really interesting thing is not the result itself but how I found it):



    My approach was the following:



    • Generate lots of sample files with different encodings

    • Play all of them on the radio and mark the good and bad ones on a paper

    But listening to long audio samples took a lot of time. Playing fast samples and keeping both the display and my paper in view didn't work for me, I always skipped lines. So finally I decided to use a tts (text-to-speech) tool to include the number of the given test acoustically into each test file, so that I hear something like:



    • A 1

    • B 1

    • B 3

    Which means: test A1, B1 and B3 were good, while A2, B2 and A3 didn't play at all. Writing all this down finally resulted in a list which helped me preparing the following chart using libreoffice's pivottable feature:



    1



    This is the script which I used to generate the test files:



    for enc in aconv lame; do
    i=1
    case "$enc" in
    aconv)
    test=A
    ;;
    lame)
    test=B
    ;;
    esac
    mkdir "$test/"

    for freq in 8000 11025 12000 16000 22050 24000 32000 44100 48000 ; do
    for bitrate in 8 16 24 32 40 48 56 64 80 96 112 128 144 160 192 224 256 320 ; do
    echo "=== $test $i $freq $bitrate ==="
    basename="$test/`printf "%s_%03d_" $test $i`"
    rm "$basename"*
    basename="$basename$freq_$bitrate"
    espeak -v german "$test $i" -w "$basename.wav"

    case "$enc" in
    aconv)Selection_001
    cmd=( avconv -i "$basename.wav" -b "$bitratek" -ar "$freq" "$basename.mp3" )
    ;;
    lame)
    cmd=( lame --resample "$freq" -m s -b "$bitrate" "$basename.wav" "$basename.mp3" )
    ;;
    esac

    "$cmd[@]" || continue

    [ -s "$basename.mp3" ] || continue
    t="`file -b "$basename.mp3"`"
    [ "$t" != "$ot" ] || continue
    ot="$t"

    echo "$test;$i;$enc;$bitrate;$freq;"$basename.mp3";"$cmd[*]"" >"$basename.csv"
    i=$((i+1))
    done
    done
    done
    cat ?/*.csv >alltests.csv
    rm ?/*.wav ?/*.csv


    Note: As you can see: in the above version of the implementation, $i doesn't exactly match for the encoders A and B in case some formats didn't convert, but this is not a limitation for the final analysis, only a bit confusing for the listener, and easy to fix if too confusing.






    share|improve this answer

























      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "106"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f177236%2flossless-conversion-of-mpeg-adts-mp3-to-normal-mp3%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      4














      There is no way to convert MPEG ADTS to MP3 without decoding and reencoding them. They are fundamentally different formats/encodings. Any conversion utility you use that claims to do a direct conversion is in fact doing that behind the scenes--decoding to some lossless format and reencoding to some version of MP3. With that in mind, I highly recommend sox for audio format conversions. It really isn't exaggerating when it refers to itself as the "Swiss Army Knife of Audio Manipulation." Syntax is simple: sox infile outfile, but the available options put ffmpeg to shame.






      share|improve this answer



























        4














        There is no way to convert MPEG ADTS to MP3 without decoding and reencoding them. They are fundamentally different formats/encodings. Any conversion utility you use that claims to do a direct conversion is in fact doing that behind the scenes--decoding to some lossless format and reencoding to some version of MP3. With that in mind, I highly recommend sox for audio format conversions. It really isn't exaggerating when it refers to itself as the "Swiss Army Knife of Audio Manipulation." Syntax is simple: sox infile outfile, but the available options put ffmpeg to shame.






        share|improve this answer

























          4












          4








          4







          There is no way to convert MPEG ADTS to MP3 without decoding and reencoding them. They are fundamentally different formats/encodings. Any conversion utility you use that claims to do a direct conversion is in fact doing that behind the scenes--decoding to some lossless format and reencoding to some version of MP3. With that in mind, I highly recommend sox for audio format conversions. It really isn't exaggerating when it refers to itself as the "Swiss Army Knife of Audio Manipulation." Syntax is simple: sox infile outfile, but the available options put ffmpeg to shame.






          share|improve this answer













          There is no way to convert MPEG ADTS to MP3 without decoding and reencoding them. They are fundamentally different formats/encodings. Any conversion utility you use that claims to do a direct conversion is in fact doing that behind the scenes--decoding to some lossless format and reencoding to some version of MP3. With that in mind, I highly recommend sox for audio format conversions. It really isn't exaggerating when it refers to itself as the "Swiss Army Knife of Audio Manipulation." Syntax is simple: sox infile outfile, but the available options put ffmpeg to shame.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Sep 21 '15 at 13:15









          Grant SandersGrant Sanders

          512




          512























              2














              It is some time ago and I don't have the car with the radio anymore. Currently, I can't even say anymore which radio make it was, but here is what I finally did. (The answer is somehow off-topic because the final solution was not exactly what I initially asked. But it's still interesting because it helps detecting problems with limited mp3 players, and I also write this because of the increasing numbers of upvotes for the question :-). The really interesting thing is not the result itself but how I found it):



              My approach was the following:



              • Generate lots of sample files with different encodings

              • Play all of them on the radio and mark the good and bad ones on a paper

              But listening to long audio samples took a lot of time. Playing fast samples and keeping both the display and my paper in view didn't work for me, I always skipped lines. So finally I decided to use a tts (text-to-speech) tool to include the number of the given test acoustically into each test file, so that I hear something like:



              • A 1

              • B 1

              • B 3

              Which means: test A1, B1 and B3 were good, while A2, B2 and A3 didn't play at all. Writing all this down finally resulted in a list which helped me preparing the following chart using libreoffice's pivottable feature:



              1



              This is the script which I used to generate the test files:



              for enc in aconv lame; do
              i=1
              case "$enc" in
              aconv)
              test=A
              ;;
              lame)
              test=B
              ;;
              esac
              mkdir "$test/"

              for freq in 8000 11025 12000 16000 22050 24000 32000 44100 48000 ; do
              for bitrate in 8 16 24 32 40 48 56 64 80 96 112 128 144 160 192 224 256 320 ; do
              echo "=== $test $i $freq $bitrate ==="
              basename="$test/`printf "%s_%03d_" $test $i`"
              rm "$basename"*
              basename="$basename$freq_$bitrate"
              espeak -v german "$test $i" -w "$basename.wav"

              case "$enc" in
              aconv)Selection_001
              cmd=( avconv -i "$basename.wav" -b "$bitratek" -ar "$freq" "$basename.mp3" )
              ;;
              lame)
              cmd=( lame --resample "$freq" -m s -b "$bitrate" "$basename.wav" "$basename.mp3" )
              ;;
              esac

              "$cmd[@]" || continue

              [ -s "$basename.mp3" ] || continue
              t="`file -b "$basename.mp3"`"
              [ "$t" != "$ot" ] || continue
              ot="$t"

              echo "$test;$i;$enc;$bitrate;$freq;"$basename.mp3";"$cmd[*]"" >"$basename.csv"
              i=$((i+1))
              done
              done
              done
              cat ?/*.csv >alltests.csv
              rm ?/*.wav ?/*.csv


              Note: As you can see: in the above version of the implementation, $i doesn't exactly match for the encoders A and B in case some formats didn't convert, but this is not a limitation for the final analysis, only a bit confusing for the listener, and easy to fix if too confusing.






              share|improve this answer





























                2














                It is some time ago and I don't have the car with the radio anymore. Currently, I can't even say anymore which radio make it was, but here is what I finally did. (The answer is somehow off-topic because the final solution was not exactly what I initially asked. But it's still interesting because it helps detecting problems with limited mp3 players, and I also write this because of the increasing numbers of upvotes for the question :-). The really interesting thing is not the result itself but how I found it):



                My approach was the following:



                • Generate lots of sample files with different encodings

                • Play all of them on the radio and mark the good and bad ones on a paper

                But listening to long audio samples took a lot of time. Playing fast samples and keeping both the display and my paper in view didn't work for me, I always skipped lines. So finally I decided to use a tts (text-to-speech) tool to include the number of the given test acoustically into each test file, so that I hear something like:



                • A 1

                • B 1

                • B 3

                Which means: test A1, B1 and B3 were good, while A2, B2 and A3 didn't play at all. Writing all this down finally resulted in a list which helped me preparing the following chart using libreoffice's pivottable feature:



                1



                This is the script which I used to generate the test files:



                for enc in aconv lame; do
                i=1
                case "$enc" in
                aconv)
                test=A
                ;;
                lame)
                test=B
                ;;
                esac
                mkdir "$test/"

                for freq in 8000 11025 12000 16000 22050 24000 32000 44100 48000 ; do
                for bitrate in 8 16 24 32 40 48 56 64 80 96 112 128 144 160 192 224 256 320 ; do
                echo "=== $test $i $freq $bitrate ==="
                basename="$test/`printf "%s_%03d_" $test $i`"
                rm "$basename"*
                basename="$basename$freq_$bitrate"
                espeak -v german "$test $i" -w "$basename.wav"

                case "$enc" in
                aconv)Selection_001
                cmd=( avconv -i "$basename.wav" -b "$bitratek" -ar "$freq" "$basename.mp3" )
                ;;
                lame)
                cmd=( lame --resample "$freq" -m s -b "$bitrate" "$basename.wav" "$basename.mp3" )
                ;;
                esac

                "$cmd[@]" || continue

                [ -s "$basename.mp3" ] || continue
                t="`file -b "$basename.mp3"`"
                [ "$t" != "$ot" ] || continue
                ot="$t"

                echo "$test;$i;$enc;$bitrate;$freq;"$basename.mp3";"$cmd[*]"" >"$basename.csv"
                i=$((i+1))
                done
                done
                done
                cat ?/*.csv >alltests.csv
                rm ?/*.wav ?/*.csv


                Note: As you can see: in the above version of the implementation, $i doesn't exactly match for the encoders A and B in case some formats didn't convert, but this is not a limitation for the final analysis, only a bit confusing for the listener, and easy to fix if too confusing.






                share|improve this answer



























                  2












                  2








                  2







                  It is some time ago and I don't have the car with the radio anymore. Currently, I can't even say anymore which radio make it was, but here is what I finally did. (The answer is somehow off-topic because the final solution was not exactly what I initially asked. But it's still interesting because it helps detecting problems with limited mp3 players, and I also write this because of the increasing numbers of upvotes for the question :-). The really interesting thing is not the result itself but how I found it):



                  My approach was the following:



                  • Generate lots of sample files with different encodings

                  • Play all of them on the radio and mark the good and bad ones on a paper

                  But listening to long audio samples took a lot of time. Playing fast samples and keeping both the display and my paper in view didn't work for me, I always skipped lines. So finally I decided to use a tts (text-to-speech) tool to include the number of the given test acoustically into each test file, so that I hear something like:



                  • A 1

                  • B 1

                  • B 3

                  Which means: test A1, B1 and B3 were good, while A2, B2 and A3 didn't play at all. Writing all this down finally resulted in a list which helped me preparing the following chart using libreoffice's pivottable feature:



                  1



                  This is the script which I used to generate the test files:



                  for enc in aconv lame; do
                  i=1
                  case "$enc" in
                  aconv)
                  test=A
                  ;;
                  lame)
                  test=B
                  ;;
                  esac
                  mkdir "$test/"

                  for freq in 8000 11025 12000 16000 22050 24000 32000 44100 48000 ; do
                  for bitrate in 8 16 24 32 40 48 56 64 80 96 112 128 144 160 192 224 256 320 ; do
                  echo "=== $test $i $freq $bitrate ==="
                  basename="$test/`printf "%s_%03d_" $test $i`"
                  rm "$basename"*
                  basename="$basename$freq_$bitrate"
                  espeak -v german "$test $i" -w "$basename.wav"

                  case "$enc" in
                  aconv)Selection_001
                  cmd=( avconv -i "$basename.wav" -b "$bitratek" -ar "$freq" "$basename.mp3" )
                  ;;
                  lame)
                  cmd=( lame --resample "$freq" -m s -b "$bitrate" "$basename.wav" "$basename.mp3" )
                  ;;
                  esac

                  "$cmd[@]" || continue

                  [ -s "$basename.mp3" ] || continue
                  t="`file -b "$basename.mp3"`"
                  [ "$t" != "$ot" ] || continue
                  ot="$t"

                  echo "$test;$i;$enc;$bitrate;$freq;"$basename.mp3";"$cmd[*]"" >"$basename.csv"
                  i=$((i+1))
                  done
                  done
                  done
                  cat ?/*.csv >alltests.csv
                  rm ?/*.wav ?/*.csv


                  Note: As you can see: in the above version of the implementation, $i doesn't exactly match for the encoders A and B in case some formats didn't convert, but this is not a limitation for the final analysis, only a bit confusing for the listener, and easy to fix if too confusing.






                  share|improve this answer















                  It is some time ago and I don't have the car with the radio anymore. Currently, I can't even say anymore which radio make it was, but here is what I finally did. (The answer is somehow off-topic because the final solution was not exactly what I initially asked. But it's still interesting because it helps detecting problems with limited mp3 players, and I also write this because of the increasing numbers of upvotes for the question :-). The really interesting thing is not the result itself but how I found it):



                  My approach was the following:



                  • Generate lots of sample files with different encodings

                  • Play all of them on the radio and mark the good and bad ones on a paper

                  But listening to long audio samples took a lot of time. Playing fast samples and keeping both the display and my paper in view didn't work for me, I always skipped lines. So finally I decided to use a tts (text-to-speech) tool to include the number of the given test acoustically into each test file, so that I hear something like:



                  • A 1

                  • B 1

                  • B 3

                  Which means: test A1, B1 and B3 were good, while A2, B2 and A3 didn't play at all. Writing all this down finally resulted in a list which helped me preparing the following chart using libreoffice's pivottable feature:



                  1



                  This is the script which I used to generate the test files:



                  for enc in aconv lame; do
                  i=1
                  case "$enc" in
                  aconv)
                  test=A
                  ;;
                  lame)
                  test=B
                  ;;
                  esac
                  mkdir "$test/"

                  for freq in 8000 11025 12000 16000 22050 24000 32000 44100 48000 ; do
                  for bitrate in 8 16 24 32 40 48 56 64 80 96 112 128 144 160 192 224 256 320 ; do
                  echo "=== $test $i $freq $bitrate ==="
                  basename="$test/`printf "%s_%03d_" $test $i`"
                  rm "$basename"*
                  basename="$basename$freq_$bitrate"
                  espeak -v german "$test $i" -w "$basename.wav"

                  case "$enc" in
                  aconv)Selection_001
                  cmd=( avconv -i "$basename.wav" -b "$bitratek" -ar "$freq" "$basename.mp3" )
                  ;;
                  lame)
                  cmd=( lame --resample "$freq" -m s -b "$bitrate" "$basename.wav" "$basename.mp3" )
                  ;;
                  esac

                  "$cmd[@]" || continue

                  [ -s "$basename.mp3" ] || continue
                  t="`file -b "$basename.mp3"`"
                  [ "$t" != "$ot" ] || continue
                  ot="$t"

                  echo "$test;$i;$enc;$bitrate;$freq;"$basename.mp3";"$cmd[*]"" >"$basename.csv"
                  i=$((i+1))
                  done
                  done
                  done
                  cat ?/*.csv >alltests.csv
                  rm ?/*.wav ?/*.csv


                  Note: As you can see: in the above version of the implementation, $i doesn't exactly match for the encoders A and B in case some formats didn't convert, but this is not a limitation for the final analysis, only a bit confusing for the listener, and easy to fix if too confusing.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 9 hours ago









                  Rui F Ribeiro

                  42.1k1484142




                  42.1k1484142










                  answered Sep 27 '17 at 8:21









                  Daniel AlderDaniel Alder

                  483618




                  483618



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Unix & Linux Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f177236%2flossless-conversion-of-mpeg-adts-mp3-to-normal-mp3%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      -mp3

                      Popular posts from this blog

                      Word for a person who has no opinion about whether god existsWord for having a definite opinion while simultaneously withholding judgment?What's the opposite of “newcomer? Is ”veteran" OK?What do you call an “atheist” who might believe in an afterlife?What's a word for someone who wants to voice opinions but not have them challenged?Word for someone who dismisses contrary opinions as irrational?Somone who thinks they are overly special/out of the ordinaryIs there a word, phrase or idiom for “a person who is incapable of thinking about the future”?The belief that a god is human-likeA word for a non-famous person/thing you have heard a lot aboutAdjective for a person who enjoys taking care of their appearance

                      What was this official D&D 3.5e Lovecraft-flavored rulebook?What was this set of RPG tools called?As a first-time DM should I let my players play complex character classes and roles?Nymph's Kiss and the RelationshipWhat was the name of this Cleric Prestige Class that shapes metal with its bare hands?Are the 3.5e Dragonlance books third party or official works?What's up with the domain Vile Darkness?What was this 80s book about RPGs?What was the name of this Werewolf band?What book had Rituals to “upgrade” animal companions to keep them viable at higher levels?What was this RPG that had rules for player-owned businesses?

                      2017 IndyCar Series Contents Series news Teams and drivers Schedule Season summary Footnotes References External links Navigation menu"INDYCAR: Initial 2018 bodywork concepts unveiled"the original"IndyCar confirms switch to Performance Friction brakes in 2017""AJ Foyt Racing will switch to Chevy"the original"Carlos Munoz, Conor Daly will drive for AJ Foyt Racing""Zach Veach's Indy 500 Debut Confirmed with Foyt""No mass exodus from Honda after Ganassi switch""Ex-F1 driver Sato joins Andretti Autosport for 2017 IndyCar season""IndyCar's Ryan Hunter-Reay, sponsor DHL paired through 2020""hhgregg and Andretti Autosport announce partnership for key races in 2016""INDYCAR: Rossi re-signs with Andretti"the original"McLaren Formula 1 - Fernando Alonso to race at Indy 500 with McLaren, Honda and Andretti Autosport""Shank will finally take part in Indy 500 with Harvey, Andretti | MotorSportsTalk""Andretti adds Jack Harvey to Indy 500 field""Ganassi switches to Honda power for 2017""INDYCAR: Chilton returns to Ganassi"the original"IndyCar silly season: Who's going where in 2017?""INDYCAR: Kanaan, NTT Data return to Ganassi"the original"Kimball to remain at Ganassi for 2017""Coyne confirms Bourdais for 2017 IndyCar season""Davison to sub for Bourdais in Indy 500"the original"Gutierrez confirmed for Detroit IndyCar debut""Gutierrez returns with Coyne for rest of 2017 season""Vautier to drive for Coyne at Texas"the original"INDYCAR: Coyne confirms Jones for 2017"the original"Pippa Mann returns to Coyne for Indy 500""Karam, Dreyer & Reinbold teaming up again for Indianapolis 500""Pigot to return to Ed Carpenter Racing""Hildebrand confirmed as full-time Ed Carpenter driver""Veach to replace injured Hildebrand at Barber"the originalNew Team Harding Racing Enters Chaves for 101st Indianapolis 500"Juncos Racing Announces Entry in 101st Running of the Indianapolis 500 :: Juncos Racing""Juncos confirms Pigot for Indy 500""Saavedra confirmed in Juncos' second 500 entry"the original"Lazier confirms Indy 500 run after son's USF2000 debut"the original"Claman DeMelo to race for RLLR at Sonoma"the original"Rahal signs Servia and ace engineer for 2017""IndyCar: Aleshin returns with Schmidt"the original"Aleshin replaced by Saavedra for Toronto""Jack Harvey will pilot SPM No. 7 car at Watkins Glen, Sonoma""Jay Howard confirmed in Tony Stewart's supported SPM Indy entry""INDYCAR: Newgarden to wave the flag at Penske"the original"Pagenaud opts for No. 1 in 2017"the original"Penske confirms Newgarden for 2017""Montoya to stay with Team Penske in 2017""Target leaving IndyCar after 27 seasons with Chip Ganassi""Cavin: IndyCar could see complete driver/team shakeup in 2017""End of the road for KV Racing?""KV Racing confirms closure, equipment sold to Juncos""Juncos confirms IndyCar Series entry"the original"Juncos readies IndyCar program, aims for '17 500"the original"Harding Racing to add Texas, Pocono to schedule"the original"Sato signs with Andretti Autosport for 2017""INDYCAR: Aleshin in Doubt at SPM"the original"Long Beach notebook: JR Hildebrand breaks hand""Hildebrand cleared to return at Phoenix"the original"Bourdais to undergo surgery on multiple fractures""Aleshin loses Schmidt Peterson IndyCar ride""Saavedra in at SPM for Pocono, Gateway"the original"Bourdais to make return at Gateway"the original"The IndyCar Grand Prix no longer is sponsored by Angie's List""2017 IndyCar Series rulebook""2017 Verizon IndyCar Series Official Rulebook"Official websiteeeeee