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

اکـسـیـژن

یک شنبه، 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) | بیشترین خروج ها (0)
2290 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 متفرقه (23)
  • XML چیستان (2)
  • XML پی‌اچ‌پی (18)
  • XML زنگ تفریح (2)
  • XML طراحی وب (4)

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

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

  • تقویم فارسی برای Google Personalized Homepage (96)
  • تکامل چیست؟ (42)
  • روش های نگهداری فیلم - بخش دوم - تبدیل فایل های تصویری (42)
  • روش های نگهداری فیلم - بخش سوم - تبدیل فایل های تصویری DVD (41)
  • زمین و گربه (40)
  • بزرگ ترین عدد (34)
  • کاراکتر های فارسی در عکس توسط PHP (32)
  • چگونگی فارسی سازی phpMyAdmin (30)
  • 11 نکته مفید در مورد فایرفاکس (28)
  • تغییر ظاهر وبلاگ (26)

آمار

آخرین نوشته: 1388-08-18 04:52
تعداد مطالب: 62
تعداد نظر ها: 815

لینک

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

مقایسه‌ی کرنل ویندوز و لینوکس
عضویت در تیم اهدای عضو
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 شیوه نگارش مطالب علمی - بخش دوم - نامه اداری
چ، 19.12.1388 03:25
نمونه نامه دعوت از م دیر شرکتی به بازدید از مکانی
میرزایی about فایرفاکس ۳ در ایران
ش، 08.12.1388 01:01
سلام یه دلیلش اینه که سایت هایی مثل شات ل برای پشتیبانی و در ک علت سرعت پایین مشت رکانشون دانلود [...]
امیر about چگونگی فارسی سازی phpMyAdmin
ش، 28.09.1388 05:29
ممنون از اینکه حداقل یه جوابی میدی و بدو ن پاسخ نمیذاری.
امید about چگونگی فارسی سازی phpMyAdmin
ش، 28.09.1388 04:08
به نظر می‌رسه یونیکد باشه! اما بد fetch شده.
امیر about چگونگی فارسی سازی phpMyAdmin
ش، 28.09.1388 03:41
نه خوب عرض کردم که ز یاد باهاش ور رفتم و قطعا اولین کاری هم ک ه کردم تغییر encodin g نمایش است ول [...]
امید about پی.اچ.پی ۵.۳ و تقویم فارسی
ش، 28.09.1388 02:39
درسته. من با php 5. 3 مشکلی با این کلاس ندارم! phpinfo رو ب بین.
امید about چگونگی فارسی سازی phpMyAdmin
ش، 28.09.1388 02:32
احتمالن مشکل از تگ‌ه ای meta توی خود صفحا ت HTMLات است.
امیر about پی.اچ.پی ۵.۳ و تقویم فارسی
ج، 27.09.1388 11:04
Fatal error: Class ' IntlDateFormatter' n ot found php vers ion: 5.3.0 مگه ای ن کلاس پیش فرض [...]
امیر about چگونگی فارسی سازی phpMyAdmin
ج، 27.09.1388 10:40
سلام ممنون اقا امید مشکل مال من هم حل ش د اما هنوز برخی نقاط ابهام وجود دارد. و قتی متن فارسی [...]
Soulless about پی.اچ.پی ۵.۳ و تقویم فارسی
چ، 25.09.1388 18:08
عالی بود، بسیار م منون.

مدیریت وبلاگ

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