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;
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
add a comment |
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
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
add a comment |
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
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
mp3
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
add a comment |
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
add a comment |
2 Answers
2
active
oldest
votes
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.
add a comment |
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:
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.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered Sep 21 '15 at 13:15
Grant SandersGrant Sanders
512
512
add a comment |
add a comment |
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:
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.
add a comment |
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:
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.
add a comment |
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:
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.
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:
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.
edited 9 hours ago
Rui F Ribeiro
42.1k1484142
42.1k1484142
answered Sep 27 '17 at 8:21
Daniel AlderDaniel Alder
483618
483618
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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