मैं अपने संगीत को flac से ogg में बदलना चाहता हूं, और वर्तमान में oggenc एल्बम कला को छोड़कर पूरी तरह से करता है। मेटाफ़्लैक एल्बम कला का उत्पादन कर सकता है, हालाँकि ओग में एल्बम कला को एम्बेड करने के लिए कोई कमांड लाइन टूल नहीं है। MP3Tag और EasyTag इसे करने में सक्षम हैं, और यहां इसके लिए एक विनिर्देश है जो छवि को बेस 64 एन्कोडेड होने के लिए कहता है। हालाँकि अभी तक मैं एक छवि फ़ाइल लेने में सक्षम होने में असफल रहा हूँ, इसे बेस 64 में परिवर्तित करके एक ओग फ़ाइल में एम्बेड कर रहा हूँ।
अगर मैं एक ओग फ़ाइल से बेस 64 एनकोडेड इमेज लेता हूं, जिसमें पहले से ही एंबेडेड इमेज है, तो मैं आसानी से वोरबिसकॉम्बमेंट का उपयोग करके इसे दूसरी इमेज में एम्बेड कर सकता हूं:
vorbiscomment -l withimage.ogg > textfile
vorbiscomment -c textfile noimage.ogg
मेरी समस्या एक jpeg की तरह कुछ ले रही है और इसे base64 में परिवर्तित कर रही है। वर्तमान में मेरे पास है:
base64 --wrap=0 ./image.jpg
जो मुझे छवि फ़ाइल को बेस 64 में परिवर्तित कर देता है, vorbiscomment का उपयोग करता है और टैगिंग नियमों का पालन करता है, मैं उसे इस तरह एक ओग फ़ाइल में एम्बेड कर सकता हूं:
echo "METADATA_BLOCK_PICTURE=$(base64 --wrap=0 ./image.jpg)" > ./folder.txt
vorbiscomment -c textfile noimage.ogg
हालांकि इससे मुझे एक ओग मिलता है जिसकी छवि ठीक से काम नहीं करती है। जब मैंने देखा कि बेस 64 स्ट्रिंग्स की तुलना करते हुए कि सभी ठीक से एम्बेड किए गए चित्रों में हेडर लाइन है लेकिन मेरे द्वारा बनाए गए सभी बेस 64 स्ट्रिंग्स में इस हेडर की कमी है। हेडर का आगे का विश्लेषण:
od -c header.txt
0000000 \0 \0 \0 003 \0 \0 \0 \n i m a g e / j p
0000020 e g \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000040 \0 \0 \0 \0 \0 \0 \0 \0 035 332
0000052
जो ऊपर दिए गए युक्ति का अनुसरण करता है। सूचना 003 सामने के कवर से मेल खाती है और छवि / जेपीएम माइम प्रकार है।
तो आखिरकार, मेरा सवाल यह है कि मैं किसी फ़ाइल को कैसे आरेखित करूं और इस हेडर को एक ओग फ़ाइल में एम्बेड करने के लिए कैसे उत्पन्न करूं?