تبدیل فله‌ای فایل‌های صوتی، از فرمتی به فرمت دیگر (به روز رسانی دوم)

اکـسـیـژن

یک شنبه، 19 خرداد 1387

تبدیل فله‌ای فایل‌های صوتی، از فرمتی به فرمت دیگر (به روز رسانی دوم)

ارسال شده توسط امید در لینوکس در 05:28


واقعا نمی‌دونم چرا اخیرا به کارهای فله‌ای علاقه‌مند شدم! به هر حال، اخیرا تصمیم گرفتم که ترکیباتی از فرمان‌ها که به کار روزانه‌ی خودم میاد رو اینجا بنویسم که هم خودم بعدا بتونم بهش مراجعه کنم و هم شاید به درد برخی دوستان بخوره! چنین پست‌هایی با محاوره‌ی روزانه و اندکی مسخره(!) نگاشته خواهد شد. :-)

اول از همه بگم که مشکل از اینجا شروع شد که من یک سی‌دی موسیقی رسید دستم که پر از شاخه و توی هر شاخه پر از فایل RM بود (یک چیزی شبیه اون سی‌دی ۵۰ سال موسیقی ایران!) خوب اولین قدم کمک گرفتن از برنامه‌ی soundconverter بود که هیچ کمکی بهم نکرد و نتونست اکثر فایل‌ها رو تبدیل کنه! با یکی دو محیط ویندوزی هم تلاش کردم، که یکی دقیقا شبیه soundconverter عمل کرد (که ۹۹٪ حدس می‌زنم پشت پرده از همون استفاده می‌کردند!! دزدهای چیز!) و بقیه هم اصلا کار نکردند!

مشکل دیگه‌ای که داشتم تعدد شاخه‌های فایل‌ها بود که مسلما کارم رو با برخی برنامه‌ها خیلی سخت می‌کرد، ضمن اینکه می‌خواستم شاخه‌بندی فایل‌های تبدیل شده هم تغییر نکنه. من هم تن‌پرور و ایده‌آلیست!!

خلاصه... (بریم صفحه‌ی بعد)



خلاصه رفتم سراغ برنامه‌ی محبوب ffmpeg با اینکه تا الان نیازی نداشتم باهاش کار کنم (چون کارهای ویدئوام رو با mencoder تبدیل می‌کنم) با یکی دو بار تست به نتیجه‌ی مطلوب رسیدم.


ffmpeg -i ./source.rm -ar 22050 -ab 64 -ac 1 -acodec mp3 -vn ./destination.mp3


اول از همه از همه‌ی دوستان عذر می‌خوام که دارم به mp3 تبدیل می‌کنم، دلیل این کار پخش این موسیقی‌ها در دستگاه‌های پخش ماشین و خانگی است! من شخصا شرمنده‌ام!
خیلی خلاصه بگم، i فایل ورودی رو مشخص می‌کنه، ar فرکانس رو، ab، بیت‌ریت که بر حسب کیلوبیت مشخص می‌شه، ac تعداد کانال‌های صوتی رو (که من مونو انتخاب کردم) و acodec هم که نیازی به توضیح نداره و vn یعنی اینکه خروجی ویدئو نداریم و آخر همه، فایل مقصد! دقت کنید که اگر فایل هم‌نامی قبلا وجود داشته باشه، پروسه‌ی تبدیل متوقف خواهد شد، اگر می‌دونید فایلی وجود داره و باید رونویسی بشه، از پارامتر y استفاده کنید. برای راهنمایی بیشتر به man ffmpeg مراجعه کنید!

چون تصمیم داشتم به‌طور فله‌ای برای همه‌ی فایل‌ها این کار رو بکنم، راحت‌ترین راهی که به نظرم رسید، استفاده از دستور find بود (نمی‌گم راه‌های دیگه‌ای نیستا، واسه من این راحت‌تر بود!)، که در نهایت به چنین چیزی رسیدم. اول شاخه رو تغییر دادم به شاخه‌ی اصلی شاخه‌های فایل‌های صوتی‌ام و بعد:


find . -type f -exec ffmpeg -i '{}' -ar 22050 -ab 64 -ac 1 -acodec mp3 -vn '{}.mp3' \;


چند نکته رو متذکر بشم که (۱) من هیچ فایلی جز فایل‌های RM توی این شاخه‌ها نداشتم، پس نیازی به فیلتر کردن فایل‌ها نبود و (۲) این دستور پسوند RM رو حذف نمی‌کنه، و فقط یک mp3 ته‌اش اضافه می‌کنه، به هر حال برای شخص من مهم نبود که اون حذف بشه، اگر برای شما مهمه، خودتون دنبال راه حلش بگردید! (برای حذف پسوند rm به روز رسانی ۱۹ خرداد در پایین را مطالعه کنید)

بعد از تبدیل، برای اینکه مطمئن بشم همه‌ی فایل‌ها تبدیل شده‌اند، یه جستجو روی تعداد فایل‌ها زدم، دو فرمان زیر باید یک عدد رو برمی‌گردوندند که چنین هم شد:


find . -type f -name "*.mp3" | wc -l
find . -type f -name "*.rm" | wc -l


و مرحله‌ی نهایی این بود که فایل‌های مسخره‌ی rm رو حذف کنم!


find . -type f -name "*.rm" -exec rm -f '{}' \;



به روز رسانی (۱۸ خرداد):

یکی از دوستان (آرمین) و خودم به دو تا مشکل متفاوت برخوردیم که با بیان مشکل، راه حلش رو هم می‌گم.
مشکلی که چند وقت پیش برخوردم این بود که فایلی rm دستم رسید که نوع rmاش cook بود و خوب برنامه‌ی ffmpeg توانایی تبدیل اون رو نداشت!
مشکل دیگه‌ای آرمین بهش برخورد که توسعه‌های ffmpeg رو نداشت و البته توانایی نصب‌شون در اون زمان نبود. یعنی عملا ffmpeg زیاد به دردش نمی‌خورد.

هر دو مشکل بالا با یک فرمان دیگه (که البته زیاد مطلوب نیست) برطرف شد. شما می‌تونید با برنامه‌ی mplayer فایل‌های صوتی رو به wav تبدیل کنید، دستورش چیزی شبیه زیر خواهد بود:


mplayer -vo null -vc dummy -ao pcm:waveheader:file="destination.wav" "source.rm"


که سپس می‌تونید با دستور lame یا oggenc اون رو به mp3 یا ogg تبدیل کنید.

/ پایان به روز رسانی

به روز رسانی (۱۹ خرداد):

همچنان یکی از دوستان در بخش نظرات (نظر پنجم) درخواست حذف .rm رو کرده است!
به هر حال، اگر بخواین .rm رو همونجا حذف کنید، من فرض کردم که شما توی نام‌های فایل‌هاتون نقطه‌ای جز آخرین نقطه ندارید! برای این کار باید از فرمان زیر استفاده کنید.


find . -type f -exec \
sh -c "ffmpeg -i \"{}\" -ar 22050 -ab 64 -ac 1 -acodec mp3 -vn \"`echo {} | cut -d . -f 1-2`.mp3\"" \;


- در حقیقت با این کار، نام فایل رو با فرمان echo "{}" | cut -d . -f 1-2 تکه تکه کردم و پسوند .rm رو حذف نمودم.
- چون نیاز داشتم از بک‌تیک جلوی -exec استفاده کنم، بهترین راه این بود که از فرمان sh استفاده کنیم. پس نیاز شد که سینگل‌کوت و دابل‌کوت رو هم فراری بدم.
- دقیقا دستور بالا رو خودم تست نکردم، اما با تست‌های مشابهی که انجام دادم اصولا باید درست کار کنه. اگر در اجرای دستور فوق مشکل داشتید متن خطا رو اینجا بنویسید :-)

/ پایان به روز رسانی

خسته نباشید :-)

در پایان توصیه می‌کنم قبل از تبدیل، یه نسخه پشتیبان از فایل‌ها بگیرید، این راهنما هم مثل همه چیه بازمتنی‌ها گارانتی نداره :-D پس نسخه‌ی پشتیبان را بگیرید تا فحش و لعن شما را نشنوم! :-)
نظر ها (20) | دنبالک ها (0)
Vote for articles fresher than 365 days!
Current karma: none, 0 vote(s)
2902 hits

دنبالک ها
یک آدرس دنبالک برای ارسال

هیچ دنبالکی وجود ندارد

نظر ها
نمایش نظرات به صورت (خطی | بند کشی شده)

:-)
ممنون
#1 tabib_m در 1387-03-15 10:49 (پاسخ)
باز هم توجیه اون ۲/۵ گیگ نمیشه :-P
#2 آرمین (سایت) در 1387-03-15 11:15 (پاسخ)
نه، اون ۲.۵ گیگابایت حافظه، شیرین‌کاریه soundconverter بود. بیچاره ffmpeg هم سرعتش عالی بود و تقریبا مموری‌فوت‌پرینت نداشت! (البته تقریبا!)
#2.1 امید (سایت) در 1387-03-15 11:24 (پاسخ)
باز هم توجیه اون "۲.۵ گیگابایت حافظه" نمیشه :-P

این بار رو کوتاه اومدم :-D
#2.1.1 آرمین (سایت) در 1387-03-15 11:29 (پاسخ)
لول، مرسی :-D
#2.1.1.1 امید (سایت) در 1387-03-15 11:32 (پاسخ)
ما به طور فله‌ای به شما ارادت ویژه‌ای داریم قربان، همچنین به این سوئیچ exec- دستور find که من رو در بسیاری موارد از انجام کارهای تکراری نجات داده.
#3 irix (سایت) در 1387-03-15 15:38 (پاسخ)
واسه همین فله‌ای دوست داشتنته که دوسِت دارم :-D

ضمنا، بحث من اینجا زیاد در مورد فرمان find نیست و بیشتر قصدم فرمان ffmpeg بود :-D
#3.1 امید (سایت) در 1387-03-15 21:52 (پاسخ)
نه بابا؟ پس چرا تا حالا من فکر می‌کردم راجع به exec- نوشتی؟ ;-)
#3.1.1 irix (سایت) در 1387-03-16 05:07 (پاسخ)
تو دست و بالت یه شات‌گان بازمتنی نداری؟! می‌خوام یه نفرو چپه کنم!! :-D
#3.1.1.1 امید (سایت) در 1387-03-16 11:42 (پاسخ)
سلام دُکی.
خواستیم به طور فله ای ابراز ارادت نماییم خدمتتان.
همچنین عرض کنیم که فیض بردیم بسی و البته به طور اخص بگوییم که مشتاق زیارت چهره‌ی [...] هستیم. :-D
#4 کامبیز در 1387-03-16 13:18 (پاسخ)
سلام برادر :-)
فله‌ای ارادت‌مندیم.
ما نیز مشتاقیم تا دیداری تازه کنیم!
#4.1 امید (سایت) در 1387-03-16 14:49 (پاسخ)
سلام عزیزم!
وب خوبی داری! به منم سر بزن!

بوس بوس! :-D


/
میمردی یک shell script بنویسی که پارامتر بگیره و اون '.rm' هم از اسم فایلهای حذف کنه؟ :-P
#5 علی ستاری (سایت) در 1387-03-19 02:44 (پاسخ)
لول، بوس بوس!!

/

نیازی به شل اسکریپت نیست، با sed یا awk یا حتی شاید با cut هم بشه. دو تا بک‌تیک می‌ندازی اون وسط و ...
#5.1 امید (سایت) در 1387-03-19 04:21 (پاسخ)
متشکرم از به روز رسانی فوری! کامنت مداری و این حرفها!

/
میشه آهنگ درخواستی هم بگیم؟ :-D
#5.1.1 علی ستاری (سایت) در 1387-03-19 05:16 (پاسخ)
چاکریم، امسال سال کامنت‌مداری بود دیگه؟!

/

که پخش کنیم، یا بخونیم یا بزنیم؟!!
#5.1.1.1 امید (سایت) در 1387-03-19 05:23 (پاسخ)
که برقصی!
عربی لطفا! 8-)
#5.1.1.1.1 علی ستاری (سایت) در 1387-03-19 05:49 (پاسخ)
به به، از آقای امید خیلی ممنونم که صدای آقای ستاری رو برای ما پخش کردند.
#6 کامبیز در 1387-03-19 07:03 (پاسخ)
خیلی مخلصیم برادر! چه خبرا؟
#6.1 علی ستاری (سایت) در 1387-03-19 12:02 (پاسخ)
برید تو کوچه‌ی خودتون توپ بازی کنید!
#6.1.1 امید (سایت) در 1387-03-19 14:09 (پاسخ)
مفید بود. فله ای ممنون
;-)
#7 SalarSoft (سایت) در 1387-03-23 10:27 (پاسخ)

ارسال نظر

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
BBCode format allowed
:'( :-) :-| :-O :-( 8-) :-D :-P ;-) 
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

 
نظرات ارسال شده قبل از نمایش داده شدن، باید مدیریت شوند.
 
 
این سایت توسط امید متقی راد با ایدهء اصلی از طرح ولادیمیر سیمو ویچ طراحی شده است و هرگونه کپی برداری از آن با ذکر منبع آزاد است.

خوراک‌ها

  • XML RSS 2.0 feed
  • XML RSS 2.0 نظر ها

ایمیل من

omi...@gmail.com

Google the Site

موضوعات

  • XML فایرفاکس (1)
  • XML لینوکس (10)
  • XML متفرقه (24)
  • XML چیستان (2)
  • XML پی‌اچ‌پی (18)
  • XML زنگ تفریح (2)
  • XML طراحی وب (4)

تمامی موضوعات

محبوب ترین مطالب

  • تقویم فارسی برای Google Personalized Homepage (113)
  • روش های نگهداری فیلم - بخش دوم - تبدیل فایل های تصویری (46)
  • کارت عروسی الکترونیکی (44)
  • تکامل چیست؟ (42)
  • روش های نگهداری فیلم - بخش سوم - تبدیل فایل های تصویری DVD (41)
  • زمین و گربه (40)
  • کاراکتر های فارسی در عکس توسط PHP (40)
  • بزرگ ترین عدد (36)
  • چگونگی فارسی سازی phpMyAdmin (32)
  • پی.اچ.پی ۵.۳ و تقویم فارسی (30)

آمار

آخرین نوشته: 1389-01-26 06:48
تعداد مطالب: 63
تعداد نظر ها: 896

لینک

  • Friends
    • Iman Raad
    • Ali Sattari
    • Armin Boroumand
    • Reza Behrouz
    • Abbas Esmaeeli
    • Ashkan Ghassemi
    • Emil Sedgh
    • Opatan
    • Sajad Kioumarsi
    • Amir Khatibzadeh
    • Milad Rastian
    • Morteza Zafari
    • Masoud Gheibi
    • Hadi Rezaee
    • Houtan Alghaspour
    • Mahdi Keramati
    • shaniaki
    • Hamid Hashemi
    • Behrouz Rad
    • Masoud
    • Ramin Farmani
    • Ali Farhadi
    • Nabi
    • Nima Shayafar
  • Other sites
    • Scientific Articles
    • Orisinal
  • OXYGEN Web Solutions
  • this blog
  • DynamicGrids
  • Serendipity

لینک های روزانه

مقایسه‌ی کرنل ویندوز و لینوکس
عضویت در تیم اهدای عضو
Who uses Linux?
ده تغییر مهم مهاجران به لینوکس!
بهینه سازی فایرفاکس
امنیت شبکه (باگ تراک)
طریقه توسعه افزونه، برای فایرفاکس
اینترنت اکسپلورر 7 را بمباران کنید
رفع مشکل حافظه فایرفاکس
نمایش محتویات cache شده در فایرفاکس

قبل | بعد

PageRank Counter

کپی برداری از مطالب سایت طبق لایسنس CC مجاز می باشد

Creative Commons License - Some Rights Reserved
Original content in this work is licensed under a Creative Commons License

نظر ها

علیرضا about کاراکتر های فارسی در عکس توسط PHP
د، 08.06.1389 20:55
ممنون از راهنماییتون مشکل از ورژن جدی د PHP هست که این bug رو داره
امید about کاراکتر های فارسی در عکس توسط PHP
د، 08.06.1389 11:51
من هم دلیل این اتفاق رو نمی‌دونم! اما مطمئنن مشکل از این تابع نیست، چون کار ا ین تابع چیز مت [...]
علیرضا about کاراکتر های فارسی در عکس توسط PHP
د، 08.06.1389 09:27
من نسخه های gd و mbs tring رو روی سرور و لوکال تست گرفتم. با هم مطابقت داشتن. هم ینطور از نسخه [...]
علیرضا about کاراکتر های فارسی در عکس توسط PHP
د، 08.06.1389 09:13
ممنونم از جوابتون من این کد رو با فون ت های مختلفی تست کرد م این دو تا عکس رو براتون آپلود ک [...]
امید about کاراکتر های فارسی در عکس توسط PHP
د، 08.06.1389 01:16
سلام، ممکنه مشکل از نسخه‌ی GD باشه که توی سرور نصب شده. یک phpinfo در لوکال و سرور بگیر و [...]
علیرضا about کاراکتر های فارسی در عکس توسط PHP
ی، 07.06.1389 18:33
سلام من از این کده ا استفاده کردم روی local درست جواب میده ولی وقتی آپلودش می کنم برخی از حر [...]
امید about کاراکتر های فارسی در عکس توسط PHP
ی، 07.06.1389 12:15
شرمنده دیر پاسخ می‌د م... محتوای فایل مشکل داره یا فقط نام خود فایل؟ کتاب‌خ انه‌ی GD به نظ [...]
محمد يوسفي about کاراکتر های فارسی در عکس توسط PHP
پ، 04.06.1389 06:31
آقا من يک پورتال LMS دارم . ولي در قسمت ريپورت ها وقتي از گز ارشات با فرمت اکسل ذ خيره سازي رو ا [...]
امید about روش های نگهداری فیلم - بخش دوم - تبدیل فایل های تصویری
ج، 29.05.1389 14:44
با این روشی که من گف تم (هر چند قدیمی است ) تست کن. اگر اروری داد، بهم بگو. پ. ن: چون من فایل [...]
babak about روش های نگهداری فیلم - بخش دوم - تبدیل فایل های تصویری
ج، 29.05.1389 11:04
من از نرم افزار allo k 3gp psp mp4 ipod v ideo converter استفا ده می کنم بدین صورت که ابتدا فایل [...]

مدیریت وبلاگ

باز کردن صفحه ورود