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

                      Frič See also Navigation menuinternal link

                      Identify plant with long narrow paired leaves and reddish stems Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?What is this plant with long sharp leaves? Is it a weed?What is this 3ft high, stalky plant, with mid sized narrow leaves?What is this young shrub with opposite ovate, crenate leaves and reddish stems?What is this plant with large broad serrated leaves?Identify this upright branching weed with long leaves and reddish stemsPlease help me identify this bulbous plant with long, broad leaves and white flowersWhat is this small annual with narrow gray/green leaves and rust colored daisy-type flowers?What is this chilli plant?Does anyone know what type of chilli plant this is?Help identify this plant

                      fontconfig warning: “/etc/fonts/fonts.conf”, line 100: unknown “element blank” The 2019 Stack Overflow Developer Survey Results Are In“tar: unrecognized option --warning” during 'apt-get install'How to fix Fontconfig errorHow do I figure out which font file is chosen for a system generic font alias?Why are some apt-get-installed fonts being ignored by fc-list, xfontsel, etc?Reload settings in /etc/fonts/conf.dTaking 30 seconds longer to boot after upgrade from jessie to stretchHow to match multiple font names with a single <match> element?Adding a custom font to fontconfigRemoving fonts from fontconfig <match> resultsBroken fonts after upgrading Firefox ESR to latest Firefox