mirror of
https://github.com/wader/fq.git
synced 2024-12-23 05:13:30 +03:00
e3ae1440c9
Feels less cluttered, easier to read and more consistent. Still keep tovalue, tobytes etc that are more basic functions this only renamed format related functions. Also there is an exceptin for to/fromjson as it comes from jq. Also fixes lots of spelling errors while reading thru.
88 lines
9.3 KiB
Plaintext
88 lines
9.3 KiB
Plaintext
# ffmpeg -f lavfi -i sine -f lavfi -i testsrc=s=4x4:r=1:d=1 -t 10ms -disposition:v attached_pic -f flac test.flac
|
|
# ffmpeg -f lavfi -i sine -t 10ms -f ogg test.ogg
|
|
# vorbiscomment -a test.ogg -t METADATA_BLOCK_PICTURE=$(fq -r '.. | select(format=="flac_picture") | tobytes | from_base64' test.flac)
|
|
# fq '.. | select(format=="vorbis_comment") | tobytes' test.ogg > vorbis-comment-picture
|
|
$ fq -d vorbis_comment dv vorbis-comment-picture
|
|
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: vorbis-comment-picture (vorbis_comment) 0x0-0x11f.7 (288)
|
|
0x0000|0d 00 00 00 |.... | vendor_length: 13 0x0-0x3.7 (4)
|
|
0x0000| 4c 61 76 66 35 38 2e 37 36 2e 31 30| Lavf58.76.10| vendor: "Lavf58.76.100" 0x4-0x10.7 (13)
|
|
0x0010|30 |0 |
|
|
0x0010| 02 00 00 00 | .... | user_comment_list_length: 2 0x11-0x14.7 (4)
|
|
| | | user_comments[0:2]: 0x15-0x11f.7 (267)
|
|
| | | [0]{}: user_comment 0x15-0x38.7 (36)
|
|
0x0010| 20 00 00 00 | ... | length: 32 0x15-0x18.7 (4)
|
|
0x0010| 65 6e 63 6f 64 65 72| encoder| comment: "encoder=Lavc58.134.100 libvorbis" 0x19-0x38.7 (32)
|
|
0x0020|3d 4c 61 76 63 35 38 2e 31 33 34 2e 31 30 30 20|=Lavc58.134.100 |
|
|
0x0030|6c 69 62 76 6f 72 62 69 73 |libvorbis |
|
|
| | | [1]{}: user_comment 0x39-0x11f.7 (231)
|
|
0x0030| e3 00 00 00 | .... | length: 227 0x39-0x3c.7 (4)
|
|
0x0030| 4d 45 54| MET| comment: "METADATA_BLOCK_PICTURE=AAAAAAAAAAlpbWFnZS9wbmcA..." 0x3d-0x11f.7 (227)
|
|
0x0040|41 44 41 54 41 5f 42 4c 4f 43 4b 5f 50 49 43 54|ADATA_BLOCK_PICT|
|
|
* |until 0x11f.7 (end) (227) | |
|
|
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| picture{}: (flac_picture) 0x0-0x98.7 (153)
|
|
0x00|00 00 00 00 |.... | picture_type: "Other" (0) 0x0-0x3.7 (4)
|
|
0x00| 00 00 00 09 | .... | mime_length: 9 0x4-0x7.7 (4)
|
|
0x00| 69 6d 61 67 65 2f 70 6e| image/pn| mime: "image/png" 0x8-0x10.7 (9)
|
|
0x01|67 |g |
|
|
0x01| 00 00 00 00 | .... | description_length: 0 0x11-0x14.7 (4)
|
|
| | | description: "" 0x15-NA (0)
|
|
0x01| 00 00 00 04 | .... | width: 4 0x15-0x18.7 (4)
|
|
0x01| 00 00 00 04 | .... | height: 4 0x19-0x1c.7 (4)
|
|
0x01| 00 00 00| ...| color_depth: 24 0x1d-0x20.7 (4)
|
|
0x02|18 |. |
|
|
0x02| 00 00 00 00 | .... | number_of_index_colors: 0 0x21-0x24.7 (4)
|
|
0x02| 00 00 00 70 | ...p | picture_length: 112 0x25-0x28.7 (4)
|
|
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| picture_data{}: (png) 0x29-0x98.7 (112)
|
|
0x02| 89 50 4e 47 0d 0a 1a| .PNG...| signature: raw bits (valid) 0x29-0x30.7 (8)
|
|
0x03|0a |. |
|
|
| | | chunks[0:4]: 0x31-0x98.7 (104)
|
|
| | | [0]{}: chunk 0x31-0x49.7 (25)
|
|
0x03| 00 00 00 0d | .... | length: 13 0x31-0x34.7 (4)
|
|
0x03| 49 48 44 52 | IHDR | type: "IHDR" 0x35-0x38.7 (4)
|
|
0x03| 49 | I | ancillary: false 0x35.3-0x35.3 (0.1)
|
|
0x03| 48 | H | private: false 0x36.3-0x36.3 (0.1)
|
|
0x03| 44 | D | reserved: false 0x37.3-0x37.3 (0.1)
|
|
0x03| 52 | R | safe_to_copy: true 0x38.3-0x38.3 (0.1)
|
|
0x03| 00 00 00 04 | .... | width: 4 0x39-0x3c.7 (4)
|
|
0x03| 00 00 00| ...| height: 4 0x3d-0x40.7 (4)
|
|
0x04|04 |. |
|
|
0x04| 08 | . | bit_depth: 8 0x41-0x41.7 (1)
|
|
0x04| 02 | . | color_type: "rgb" (2) 0x42-0x42.7 (1)
|
|
0x04| 00 | . | compression_method: "deflate" (0) 0x43-0x43.7 (1)
|
|
0x04| 00 | . | filter_method: "adaptive_filtering" (0) 0x44-0x44.7 (1)
|
|
0x04| 00 | . | interlace_method: "none" (0) 0x45-0x45.7 (1)
|
|
0x04| 26 93 09 29 | &..) | crc: 0x26930929 (valid) 0x46-0x49.7 (4)
|
|
| | | [1]{}: chunk 0x4a-0x5e.7 (21)
|
|
0x04| 00 00 00 09 | .... | length: 9 0x4a-0x4d.7 (4)
|
|
0x04| 70 48| pH| type: "pHYs" 0x4e-0x51.7 (4)
|
|
0x05|59 73 |Ys |
|
|
0x04| 70 | p | ancillary: true 0x4e.3-0x4e.3 (0.1)
|
|
0x04| 48| H| private: false 0x4f.3-0x4f.3 (0.1)
|
|
0x05|59 |Y | reserved: true 0x50.3-0x50.3 (0.1)
|
|
0x05| 73 | s | safe_to_copy: true 0x51.3-0x51.3 (0.1)
|
|
0x05| 00 00 00 01 | .... | x_pixels_per_unit: 1 0x52-0x55.7 (4)
|
|
0x05| 00 00 00 01 | .... | y_pixels_per_unit: 1 0x56-0x59.7 (4)
|
|
0x05| 00 | . | unit: 0 0x5a-0x5a.7 (1)
|
|
0x05| 4f 25 c4 d6 | O%.. | crc: 0x4f25c4d6 (valid) 0x5b-0x5e.7 (4)
|
|
| | | [2]{}: chunk 0x5f-0x8c.7 (46)
|
|
0x05| 00| .| length: 34 0x5f-0x62.7 (4)
|
|
0x06|00 00 22 |.." |
|
|
0x06| 49 44 41 54 | IDAT | type: "IDAT" 0x63-0x66.7 (4)
|
|
0x06| 49 | I | ancillary: false 0x63.3-0x63.3 (0.1)
|
|
0x06| 44 | D | private: false 0x64.3-0x64.3 (0.1)
|
|
0x06| 41 | A | reserved: false 0x65.3-0x65.3 (0.1)
|
|
0x06| 54 | T | safe_to_copy: true 0x66.3-0x66.3 (0.1)
|
|
0x06| 78 9c 63 60 60 60 f8 0f c6| x.c```...| data: raw bits 0x67-0x88.7 (34)
|
|
0x07|ff 41 14 88 05 64 fc 87 08 22 71 80 44 3d 88 f1|.A...d..."q.D=..|
|
|
0x08|bf 81 e1 3f 00 c8 76 13 ed |...?..v.. |
|
|
0x08| 2f 76 8a 2a | /v.* | crc: 0x2f768a2a (valid) 0x89-0x8c.7 (4)
|
|
| | | [3]{}: chunk 0x8d-0x98.7 (12)
|
|
0x08| 00 00 00| ...| length: 0 0x8d-0x90.7 (4)
|
|
0x09|00 |. |
|
|
0x09| 49 45 4e 44 | IEND | type: "IEND" 0x91-0x94.7 (4)
|
|
0x09| 49 | I | ancillary: false 0x91.3-0x91.3 (0.1)
|
|
0x09| 45 | E | private: false 0x92.3-0x92.3 (0.1)
|
|
0x09| 4e | N | reserved: false 0x93.3-0x93.3 (0.1)
|
|
0x09| 44 | D | safe_to_copy: false 0x94.3-0x94.3 (0.1)
|
|
0x09| ae 42 60 82| | .B`.| | crc: 0xae426082 (valid) 0x95-0x98.7 (4)
|