Skip to content

Commit f2ae03b

Browse files
committed
general: linux audio extract now considers actual header len
1 parent ae7271b commit f2ae03b

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

content/docs/wiki/general/audio-file-format.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,18 @@ But the in experiments used encoder did not have an obvious feature to do this.
7676

7777
**We have developed a tool called [teddy](https://github.com/toniebox-reverse-engineering/teddy) to encode and decode these files.**
7878

79-
# Audio file extraction with Linux OS
80-
- Remove Header of the file with ´dd bs=4096 skip=1 if=500304E0 of=trim.ogg´
81-
- then just use ffmpeg to convert it into mp3 ´ffmpeg -i trim.ogg done.mp3´
79+
# Audio file extraction with Linux OS and bash shell
80+
81+
1. read the *header_len* (in hex): `dd status=none if=50012345 bs=1 count=4 | xxd -plain`
82+
2. convert to decimal and add 4 in order to get the length (in decimal) of the whole header
83+
3. read the audio_data into file: `dd if=50012345 bs=1 skip="${header_len}" of=50012345.audio_data.ogg`
84+
4. (optional) convert audio_data from ogg to mp3: `ffmpeg -i 50012345.audio_data.ogg 50012345.audio_data.mp3`
85+
86+
The same procedure as one block of spagetthi code for easier copy&paste:
87+
88+
```bash
89+
inputfile=50012345
90+
header_len="$((4+0x"$(dd status=none if="${inputfile}" bs=1 count=4 | xxd -plain)"))"
91+
dd if="${inputfile}" bs=1 skip="${header_len}" of=${inputfile}.audio_data.ogg
92+
ffmpeg -i "${inputfile}.audio_data.ogg" "${inputfile}.audio_data.mp3"
93+
```

0 commit comments

Comments
 (0)