আমি আমার সংগীতকে ফ্ল্যাক থেকে ওগিতে রূপান্তর করতে চাই, এবং বর্তমানে ওগজেঙ্ক অ্যালবাম আর্ট ব্যতীত পুরোপুরি এটি করে। মেটাফ্ল্যাক অ্যালবাম আর্টকে আউটপুট দিতে পারে, তবে অ্যালবাম আর্টকে ওগিতে এম্বেড করার জন্য কোনও কমান্ড লাইন সরঞ্জাম নেই বলে মনে হয়। এমপি 3 ট্যাগ এবং ইজিট্যাগ এটি করতে সক্ষম হয় এবং এটির জন্য এখানে একটি স্পেসিফিকেশন রয়েছে যা চিত্রটি বেস 64 কে এনকোড করতে বলে। তবে এখনও অবধি আমি একটি চিত্র ফাইল নিতে সক্ষম হয়েছি, এটি বেস64 এ রূপান্তর করে এবং এটি একটি ওগ ফাইলে এম্বেড করতে ব্যর্থ হয়েছি।
আমি যদি ইতিমধ্যে এম্বেড থাকা ছবিটি কোনও ওজিগ ফাইল থেকে একটি বেস 64 এনকোডযুক্ত চিত্রটি গ্রহণ করি তবে আমি খুব সহজেই ভোরবিস্কোমেন্ট ব্যবহার করে এটি অন্য চিত্রটিতে এম্বেড করতে পারি:
vorbiscomment -l withimage.ogg > textfile
vorbiscomment -c textfile noimage.ogg
আমার সমস্যাটি জেপিগের মতো কিছু নিয়েছে এবং এটিকে বেস 64 এ রূপান্তর করছে। বর্তমানে আমার আছে:
base64 --wrap=0 ./image.jpg
যা আমাকে ভোরবিস্কোমেন্ট ব্যবহার করে এবং ট্যাগিং নিয়ম অনুসরণ করে বেস 64 এ রূপান্তরিত ইমেজ ফাইলটি দেয়, আমি এটিকে একটি ওগ ফাইলটিতে এম্বেড করতে পারি:
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 সামনের কভারের সাথে মিলে যায় এবং চিত্র / জেপিগ মাইম টাইপ।
সুতরাং অবশেষে, আমার প্রশ্নটি হল, আমি কীভাবে একটি ফাইলকে এনকোড করব এবং একটি হেড ফাইলটি এমড করার জন্য এই শিরোনামটি বানাতে পারি?