# ffmpeg -y -f lavfi -i sine -ac 1 -t 10ms -f mp3 file && fq file '.frame[1] | tobits' > mp3-frame-mono $ fq -d mp3_frame dv /mp3-frame-mono |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: /mp3-frame-mono (mp3_frame) 0x0-0xcf.7 (208) | | | header{}: 0x0-0x3.7 (4) 0x00|ff fb |.. | sync: 0b11111111111 (valid) 0x0-0x1.2 (1.3) 0x00| fb | . | mpeg_version: "1" (3) (MPEG Version 1) 0x1.3-0x1.4 (0.2) 0x00| fb | . | layer: 3 (1) (MPEG Layer 3) 0x1.5-0x1.6 (0.2) | | | sample_count: 1152 0x1.7-NA (0) 0x00| fb | . | protection_absent: true (No CRC) 0x1.7-0x1.7 (0.1) 0x00| 50 | P | bitrate: 64000 (5) 0x2-0x2.3 (0.4) 0x00| 50 | P | sample_rate: 44100 (0) 0x2.4-0x2.5 (0.2) 0x00| 50 | P | padding: "Not padded" (0b0) 0x2.6-0x2.6 (0.1) 0x00| 50 | P | private: 0 0x2.7-0x2.7 (0.1) 0x00| c4 | . | channels: "Mono" (0b11) 0x3-0x3.1 (0.2) 0x00| c4 | . | channel_mode: "None" (0b0) 0x3.2-0x3.3 (0.2) 0x00| c4 | . | copyright: 0 0x3.4-0x3.4 (0.1) 0x00| c4 | . | original: 1 0x3.5-0x3.5 (0.1) 0x00| c4 | . | emphasis: "None" (0b0) 0x3.6-0x3.7 (0.2) | | | side_info{}: 0x4-0x14.7 (17) 0x00| 00 00 | .. | main_data_end: 0 0x4-0x5 (1.1) 0x00| 00 | . | private_bits: 0 0x5.1-0x5.5 (0.5) 0x00| 00 0a | .. | share0: 0 0x5.6-0x6.1 (0.4) | | | granules[0:2]: 0x6.2-0x14.7 (14.6) | | | [0]{}: granule 0x6.2-0xd.4 (7.3) | | | channels[0:1]: 0x6.2-0xd.4 (7.3) | | | [0]{}: channel 0x6.2-0xd.4 (7.3) 0x00| 0a 2c | ., | part2_3_length: 651 0x6.2-0x7.5 (1.4) 0x00| 2c 43 | ,C | big_values: 33 0x7.6-0x8.6 (1.1) 0x00| 43 2e | C. | global_gain: 151 0x8.7-0x9.6 (1) 0x00| 2e 55 | .U | scalefac_compress: 2 0x9.7-0xa.2 (0.4) 0x00| 55 | U | blocksplit_flag: 1 0xa.3-0xa.3 (0.1) 0x00| 55 | U | block_type: "start block" (1) 0xa.4-0xa.5 (0.2) 0x00| 55 | U | switch_point: 0 0xa.6-0xa.6 (0.1) 0x00| 55 94 | U. | table_select0: 25 0xa.7-0xb.3 (0.5) 0x00| 94 80 | .. | table_select1: 9 0xb.4-0xc (0.5) 0x00| 80 | . | subblock_gain0: 0 0xc.1-0xc.3 (0.3) 0x00| 80 | . | subblock_gain1: 0 0xc.4-0xc.6 (0.3) 0x00| 80 01 | .. | subblock_gain2: 0 0xc.7-0xd.1 (0.3) 0x00| 01 | . | preflag: 0 0xd.2-0xd.2 (0.1) 0x00| 01 | . | scalefac_scale: 0 0xd.3-0xd.3 (0.1) 0x00| 01 | . | count1table_select: 0 0xd.4-0xd.4 (0.1) | | | [1]{}: granule 0xd.5-0x14.7 (7.3) | | | channels[0:1]: 0xd.5-0x14.7 (7.3) | | | [0]{}: channel 0xd.5-0x14.7 (7.3) 0x00| 01 80 93| ...| part2_3_length: 769 0xd.5-0xf (1.4) 0x00| 93| .| big_values: 77 0xf.1-0x10.1 (1.1) 0x10|6b |k | 0x10|6b 27 |k' | global_gain: 172 0x10.2-0x11.1 (1) 0x10| 27 | ' | scalefac_compress: 9 0x11.2-0x11.5 (0.4) 0x10| 27 | ' | blocksplit_flag: 1 0x11.6-0x11.6 (0.1) 0x10| 27 30 | '0 | block_type: "3 short windows" (2) 0x11.7-0x12 (0.2) 0x10| 30 | 0 | switch_point: 0 0x12.1-0x12.1 (0.1) 0x10| 30 | 0 | table_select0: 24 0x12.2-0x12.6 (0.5) 0x10| 30 80 | 0. | table_select1: 8 0x12.7-0x13.3 (0.5) 0x10| 80 | . | subblock_gain0: 0 0x13.4-0x13.6 (0.3) 0x10| 80 00 | .. | subblock_gain1: 0 0x13.7-0x14.1 (0.3) 0x10| 00 | . | subblock_gain2: 0 0x14.2-0x14.4 (0.3) 0x10| 00 | . | preflag: 0 0x14.5-0x14.5 (0.1) 0x10| 00 | . | scalefac_scale: 0 0x14.6-0x14.6 (0.1) 0x10| 00 | . | count1table_select: 0 0x14.7-0x14.7 (0.1) 0x10| 07 aa c3 8e 33 85 d3 64 f1 a1 c1| ....3..d...| data: raw bits 0x15-0xcf.7 (187) 0x20|08 1c 58 1f 5e 1f 18 1c 46 04 1e 89 e5 b3 2e 5a|..X.^...F......Z| * |until 0xcf.7 (end) (187) | | | | | other_data: raw bits 0xd0-NA (0) | | | crc_calculated: "e5b0" (raw bits) 0xd0-NA (0)