ব্যাচ মোডে কমান্ড-লাইন থেকে এমপি 3 / অগ ফাইলটিতে অ্যালবাম-আর্ট কভার যুক্ত করবেন?


38

আমি লিনাক্সে এমন একটি সফ্টওয়্যার খুঁজছি, যা ব্যাচ-মোডে নির্বাচিত প্রতিটি ফাইলের অ্যালবাম-আর্ট / কভার যুক্ত করবে। অ্যালবাম আর্টটি আমার কম্পিউটারে সঞ্চিত একটি জেপিজি / পিএনজি। এটি ইন্টারনেট থেকে আমদানি করতে পারলে দুর্দান্ত হবে।

বর্তমানে আমি রিদম্বক্স এবং বানশি উভয়ই চেষ্টা করেছি। আমি চেষ্টা করেছি lameএবং easytag, কিন্তু তারা ব্যাচ মোড সমর্থন করে না বলে মনে হয়। বৈশিষ্ট্যগুলি যোগ lameকরছে না , তবে ওভাররাইটিং ing (আমি জানি লঙ্গা একমাত্র কমান্ড লাইন s / wi এখনও অবধি ব্যবহার করেছে)।

সুতরাং, মূলত আমি খুঁজছি:

<some magic s/w> --picture=<my chosen picture> Music/Artist/*.mp3

এটি স্থায়ীভাবে ফাইলের মেটাডেটাতে ছবি যুক্ত করবে।

আপনি কি আমাকে এই জাতীয় কোনও সফটওয়্যার বলতে পারেন?

উত্তর:


24

পঙ্গু

lameআপনি ব্যবহার করে সামান্য স্ক্রিপ্টিং ব্যবহার করে এটি করতে পারেন:

$ lame --ti /path/to/file.jpg audio.mp3

যদি ফাইলগুলির নামকরণের মতো কিছু থাকে তবে আপনি যা চান তা করতে শেল স্ক্রিপ্ট তৈরি করতে পারেন:

for i in file1.mp3 file2.mp3 file3.mp3; do
  albart=$(echo $i | sed 's/.mp3/.jpg/')
  lame --ti /path/to/$albart $i
done

আপনি উপরেরটিকে কিছুটা আরও কমপ্যাক্ট করতে পারেন এবং ম্যাচের প্রত্যয়টি সরিয়ে দিয়ে এটি sedব্যবহার করে প্রয়োজনীয়তা দূর bashকরতে পারেন:

...
albart="${i%.mp3}.jpg"
...

Picard, / MusicBrainz

আপনি যদি বৃহত আকারে এটি করতে চান তবে আমি পিকার্ডটি ব্যবহার করার পরামর্শ দিচ্ছি যা মিউজিকব্রেঞ্জ ডাটাবেস ব্যবহারের জন্য অগ্রণী সরঞ্জাম। "কভার আর্ট ডাউনলোডার" নামে পিকার্ডে একটি প্লাগইন রয়েছে, এটি আপনার সংগ্রহের ব্যাচগুলিতে এটি করতে পারে।

উপরেরটি কমান্ড লাইন চালিত বলে মনে হচ্ছে না।

Beets

আরেকটি বিকল্প ব্যবহার করা হবে beets। এটি কমান্ড-লাইন থেকে চালিত হতে পারে এবং অ্যালবাম আর্টের উত্সার জন্য সংগীতব্রিনেজ ডাটাবেস ব্যবহার করে।

হয় আপনি অ্যালবাম শিল্প সোর্স ব্যবহারের করতে FetchArt প্লাগইন বা ব্যবহার করে এটি এম্বেড EmbedArt প্লাগইন

অন্যান্য অপশন?

পূর্বে জিজ্ঞাসিত ইউএন্ডএল প্রশ্নোত্তর শিরোনামটিও দেখুন: লিনাক্সের জন্য কোন এমপি 3 ট্যাগিং সরঞ্জাম? । এই থ্রেডে তালিকাভুক্ত বেশ কয়েকটি বিকল্প সরঞ্জাম রয়েছে।


sedএরকম কিছু দিয়ে আপনি কলটি এড়াতে পারবেন albart="${i%.mp3}.jpg"। আরও গুরুত্বপূর্ণ, আমি কেবল আপনার খোঁড়া কমান্ডটি পরীক্ষা করেছিলাম এবং পেয়েছি lame: unrecognized option -i...
শে

@ ইভিলসপ - ধন্যবাদ, সুইচটিতে একটি ড্যাশ অনুপস্থিত ছিল। হওয়া উচিত --ti ..
slm

@ অ্যাভিলসপ - ব্যবহার না করার বিষয়ে আপনার প্রতিক্রিয়াও যুক্ত করেছে sed। ধন্যবাদ!
slm

7
@ এক্সিলারেশন-জি - না এটি ব্যবহারের প্রস্তাব দিচ্ছি না lameকারণ এটি আসলে একটি এনকোডার। কেবলমাত্র একটি এমপি 3 এর আইডি 3 ট্যাগ ম্যানিপুলেট করার জন্য অন্যান্য সরঞ্জাম রয়েছে। আপনি কোনও সংযুক্ত চিত্র ব্যবহার করতে id3v2 -r "APIC" *.mp3বা eyeD3 --remove-all-images *.mp3সরাতে পারেন।
slm

1
এফওয়াইআইআই আমার সংস্করণ 3.99-এ কোনও "--ti" বিকল্প নেই (ডিবিয়ান বুস্টার) - আইডি 3 একটি ভাল বিকল্প বলে মনে হচ্ছে।
বেনিয়ামিন পিটার

17

একটি সমাধান ffmpeg ব্যবহার করা হবে:

ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3

ডিরেক্টরিতে প্রতিটি এমপি 3 করার জন্য আপনি এটি লুপের মধ্যে রাখতে পারেন:

for f in ./*.mp3; do ffmpeg -i "$f" -i cover.jpg -map_metadata 0 -map 0 -map 1 out-"${f#./}"; done

এই পৃথক আউটপুট ফাইল তৈরি করবে (তাই যদি আপনি একটি ফাইল আছে বলা foo.mp3, আপনি উভয় দিয়ে শেষ হবে foo.mp3এবং out-foo.mp3); কারণ ffmpeg তার ইনপুটটিতে লিখতে পারে না। আপনি এই জাতীয় কিছু দিয়ে এটি ঠিক করতে পারেন:

for f in ./*.mp3; do \
ffmpeg -i "$f" -i cover.jpg -map_metadata 0 -map 0 -map 1 out-"${f#./}" \
&& mv out-"${f#./}" "$f"; done

এই সমস্যার জন্য ffmpeg ব্যবহার করা বাদামকে ফাটানোর জন্য ক্রুজ মিসাইল ব্যবহার করার মতো কিছুটা। আরও বিশেষায়িত মেটাডেটা-ম্যানিপুলেটিং সরঞ্জামগুলি অবশ্যই এটি একটি ক্লিনার, সংক্ষিপ্ত কমান্ডে করতে সক্ষম হবে।


6
এখানে প্রদর্শিত ffmpeg কমান্ড অডিওকে এনকোড করবে। আপনি যদি অন্য কোনও ফর্ম্যাট থেকে রূপান্তর করেন তবে তা ঠিক আছে তবে আপনি যদি কেবল নতুন এমকোডিং ছাড়াই কোনও বিদ্যমান এমপি 3 তে শিল্প যুক্ত করতে চান তবে এর -acodec copyপরে যুক্ত করুন -map 1
jsd

এটি আমার পক্ষে কাজ করছে না, কোনও বিশেষ কারণ? আমি কেবল এমপি 3 ফাইল পাই তবে কোনও থাম্বনেইল নেই। @ জেএসডি
শেফ ফেরাউন

দুঃখিত @ শেফফেরো আমি জানি না কেন এটি আপনার পক্ষে কাজ করছে না। আমি আর্ট যোগ করার সময় কেবল wav-> এমপি 3 করার চেষ্টা করেছি এবং উপরের উপরে প্রদর্শিত ffmpeg কমান্ডের সাথে একটি বিদ্যমান এমপি 3 তে আর্ট যুক্ত করেছি। উভয় সময় এটি ভাল কাজ করে।
জাসদ

@ ইভিলসপ আমি নিশ্চিত না যে আমি খুব খারাপ বা অন্যায় কিছু করছি কিনা তবে আমি প্রক্রিয়া প্রতিস্থাপন ব্যবহার করে আমার এমপি 3 ফাইলগুলিকে সংশোধন করতে সক্ষম হয়েছি। কিন্ডা এই স্ক্রিপ্টটিকে সরল করে তোলে এবং এটি বেশ দ্রুত বলে মনে হচ্ছে।
rien333

ট্রিটের মতো কাজ করেছেন এবং আমিও ffmpeg খোঁড়া চেয়ে কিছুটা দ্রুত হতে পেয়েছি :)
টিনা


5

আপনি এটির জন্য অভিনব অডিও রত্ন ব্যবহার করতে পারেন । এটি এমপি 3 ফাইলগুলিতে অ্যালবাম আর্ট যুক্ত করতে পারে। নথিপত্র পাওয়া যায় এখানে

বৈশিষ্ট্য

  1. একক এমপি 3 ফাইলে অ্যালবাম আর্ট যুক্ত করুন
  2. একাধিক এমপি 3 ফাইলগুলিতে অ্যালবাম আর্ট যুক্ত করুন।

চিত্র এবং একাধিক এমপি 3 ফাইল রয়েছে এমন ফোল্ডারে চালিত হওয়ার পরে নীচে স্ক্রিন শটটি অভিনব_আওডিওর আউটপুট দেখায়

এখানে চিত্র বর্ণনা লিখুন

এমপিথ্রি এবং ইমেজ ফাইলযুক্ত ফোল্ডারে যখন চালানো হয় তখন নীচে স্ক্রিন শটটি অভিনব_আওডিওর আউটপুট দেখায়

এই চিত্রটি এমপি 3 এবং ইমেজ ফাইলযুক্ত ফোল্ডারে চালিত হলে অভিনব_আউডিওগুলির আউটপুট দেখায়


এটি সহজ এবং lameএকাধিক এমপি 3 ফাইলে একই চিত্র যুক্ত করার চেয়ে দ্রুত কাজ করে। আপনার রুবি;) জানা দরকার নেই - এটি একটি স্বতন্ত্র লিপি।
টমাসজ গ্যান্ডোর

0

ওপিতে বলা হয়েছে যে ওয়েবটি থেকে কভারটি ডাউনলোড করা হলে তিনি পছন্দ করবেন এবং আমি কেবল এটির জন্য একটি সুন্দর ঠিক স্ক্রিপ্ট লিখেছি eye3Dএবং sacadউভয়ই পাইপ থেকে ইনস্টলযোগ্য। eye3Dএই উদ্দেশ্যটির জন্য খুব কার্যকর কারণ এটি --to-v2.4অডিওটিকে পুনরায় এনকোড করে এবং পতাকা ব্যবহার করে কোনও এমপি 3 ফাইল হ্যান্ডল করে না , আইডি 3 ট্যাগের ধরণের বিষয়টি বিবেচনা করেই। স্ক্রিপ্টটি এমপি 3 ফাইল রয়েছে এমন ডিরেক্টরি থেকে চালু করা উচিত। এটি কোনও যুক্তি ছাড়াই, আইডি 3 ট্যাগ থেকে শিল্পী এবং অ্যালবামের নাম অনুমান করা বা আর্গুমেন্ট হিসাবে ম্যানুয়াল নাম সহ চালানো যেতে পারে embedart "pink floyd" "dark side of the moon"। এটি ফিশ শেলের জন্য লেখা, তবে আপনি যদি সেট সেট কম্যান্ডগুলি পরিবর্তনশীল অ্যাসিগমেন্টগুলিতে বাশনে পরিবর্তন করেন তবে সহজেই ব্যাশ করতে পোর্টেবল হওয়া উচিত।

function embedart
    if echo $argv | grep -q -e '-h'
       echo 'embedart "[Artist]" "[Album]"'
       return
    end

    if test $argv[1]
        set artist $argv[1]
        set album $argv[2]
    else
        set artist (eyed3 (ls *mp3 | head -1) | ggrep -oP "artist.*: \K.*" | head -1)
        if not test $artist
            echo "No artist found!"
            return
        end
        set album (eyed3 (ls *mp3 | head -1) | ggrep -oP "album.*: \K.*" | head -1)
        if not test $album
            echo "No album found!"
            return
        end
    end

    sacad $artist $album 350 cover.jpg -v warning 2> /dev/null > /dev/null
    eyeD3 --to-v2.4 --add-image "cover.jpg:FRONT_COVER" *mp3 -Q 2> /dev/null > /dev/null

    rm cover.jpg
    echo "Done!"
end

-1

eyeD3 ইউনিকোড দিয়ে কাজ করে না । যদি কোনও অ-এস্কি অক্ষর থাকে। এমপি 3 ফাইলের নাম (বা এমনকি কেবল পূর্বসূরি ডিরেক্টরিতে যেমন অ্যালবাম ডিরেক্টরিতে) থাকে তবে তা বাতিল হয়ে যায়। LTA।

সুতরাং অ্যালবাম বা গানের শিরোনামটি ইংরেজী না লেখা থাকলে আপনি ভাগ্যের বাইরে!

উদাহরণ স্বরূপ:

cp yoursong.mp3 /tmp/Странджанска.mp3
eyeD3 --add-image folder.jpg:FRONT_COVER Странджанска.mp3

স্পষ্টতই eyeD3 .mp3 ফাইলের পুরো পথটিকে .mp3 ফাইলের মধ্যে রাখতে চায় এবং অ-এসকিআই অক্ষরগুলি পরিচালনা করতে পারে না।

অপ্রকাশিত ব্যতিক্রম: 'এসকিআই' কোডেক 5-16 পজিশনে অক্ষরগুলি এনকোড করতে পারে না: সীমিত সীমানায় নেই (128)
eyed3: ERROR: 'ascii' কোডেক 5-16 পজিশনে অক্ষরগুলি এনকোড করতে পারে না: সীমিত সীমানায় নেই (128)
ট্রেসব্যাক 
... (দীর্ঘ ট্রেসব্যাক বাদ দেওয়া) ...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.