منبع اصلی نوشتار زیر در این لینک قرار دارد

پیشنویسها – Bash

خیلی پیش میاد که این وبلاگ به صورت یک آرشیو برای خودم مفید میشه! چون من خیلی فراموش کارم و زیاد پیش میاد که یه کار رو که بارها انجام دادم فراموش کنم!
جدیدا از پستهای پیشنویس هم استفاده میکردم برای ذخیره کردن یه سری چیزها، راههای ساده تر هست، میدونم، ولی یه باره شد، و چند تا نکته رو، وقتی خونه نبودم تو وبلاگ ذخیره کردم. حالا به این نتیجه رسیدم که خیلی از اینها میتونه برای دیگران هم بدرد بخور باشه. اینه که پستهای پیشنویس که یه کم پر بار تر بشن منتشرشون میکنم، و این هم یکی از اون پستهای پیشنویسه، که البته یه کم توضیحات به هر تیکش اضافه کردم :

۱-چسباندن صدا به یک ویدئو :
یه چند تایی ویدئوکست درست کردم اگه دیده باشید. منتها توی صدا مشکل وجود داشت و تصمیم گرفتم صدا رو توی استودیوی خانگی برادرم ضبط کنم و بعد به هم بچسبونمشون.

استودیوی خانگی برادرم

استودیوی خانگی برادرم


چطور اینکار رو انجام دادم؟ اینطوری :

 ffmpeg -vcodec copy -acodec copy  -i source.mp3 -i source.mkv out.mkv

خیلی ساده :) فقط -acodec میگه که صدا رو تبدیل کنه یا نه که من نمیخواستم هیچ تغییری اتفاق بیفته در مورد کیفیت ویدئو هم -vcodec همین رو میگه.
اگه مشکلی پیش اومد، سعی در تغییر این دو عبارت copy معمولا چاره سازه، منتها اونوقت باید کدک ها رو خودتون انتخاب کنید.
پسوند فایل خروجی، اگه مشخص و شناخته شده باشه، ffmpeg اشتباه نمیکنه. ولی در غیر اینصورت فرمت خروجی رو با سوئیچ -f میتونید بهش بگید. مثلا برای اینکه من نوشتم، mkv خودش میشناسونه همه چی رو.

۲- اضافه کردن زیرنویس به فیلم
این دستگاههای ویدئو پلیر که دایوایکس میخونن و فلش و از این حرفها، معمولا فایل زیرنویس رو هم میتونن از فایل srt نمایش بدن، ولی متاسفانه فقط انگلیسی رو، و تمام اونچیزهایی که من دیدم با فارسی مشکل داشتن :(
از طرفی تو خونه ما ترجیح بر دیدن فیلم با تلویزیونه، که اگه اینکار رو هم باهاش انجام ندیم کلا میشه یه وسیله بی مصرف!!!
اینه که گشتم دنبال یه راهی برای اینکار، و راه حل mplayer بود. البته قسمت mencoder این برنامه. -نمیدونم چرا با ffmpeg موفق نشدم :)-
یه اسکریپت ساده نوشتم که اینکار رو برام انجام میده :) اینه :

#!/bin/bash

movie_file=<code>zenity --file-selection --title=&quot;Choose movie file&quot;</code>
echo $movie_file

sub_file=<code>zenity --file-selection --title=&quot;Choose subtitle file&quot;</code>
echo $sub_file

sub_encoding=<code>zenity --entry --title=&quot;Sub title encoding&quot; --text=&quot;Your subtitle encoding :&quot; --entry-text=&quot;windows-1256&quot;</code>
echo $sub_encoding

scale=<code>zenity --scale --title=&quot;Sub font text scale&quot; --value=3 --min-value=1 --max-value=10</code>
echo $scale

mencoder &quot;$movie_file&quot; -oac copy -ovc xvid \
		-xvidencopts bitrate=687 -sub &quot;$sub_file&quot;\
		 -subcp $sub_encoding -subfont-text-scale $scale \
		 -o &quot;$movie_file&quot;.out.avi

خیلی سادست، فقط اینکه اگه هر قسمت رو لغو کنید، کار ادامه پیدا میکنه، با Ctrl+C متوقفش کنید :) حسش نبود خیلی امکانات اضافه کنم براش.
-oac copy هم گاهی جواب نمیده -تو قسمت آخر اسکریپت-، مثلا برای فایلهای mkv، اون مواقع بد نیست بزنید : oac pam یا هر چیز دیگه ای.
البته چون تبدیل به divx صورت میگیره این اسکریپت کارش طول میکشه :)

۳-راحت شدن از فضای رزرو پارتیشنهای ext3 , ext4 و شاید ext2
پارتیشنهای ext3 و ext4 به صورت پیشفرض ۵ درصد از فضای پارتیشن رو رزرو میکنن. اما خیلی وقتها واقعا لازم نیست. مثلا من یه پارتیشن ۱ ترا بایتی دارم که ۵۰ گیگا! فضا رو ازش رزرو کردن. اطلاعاتش هم حساس نیست، فقط فیلمه :) و سریال و انیمه :D نتیجه اینکه دوست داشتم از دست این فضای خالی الکی راحت بشم.
این دستور به دادم رسید :

tune2fs -m 1 /dev/sdXX

با تغییر ۱ به هر عدد دیگه ای، میتونید درصد فضای رزرو شده رو از ۵ به این عدد تغییر بدید. مثلا با مقدار صفر کلا فضای رزرو استفاده نمیشه البته دستور باید با دسترسی root اجرا بشه و به جای XX هم اسم پارتیشن شما نوشته بشه، چیزی مثل sda1 . برای درایوهای سیستمی و اطلاعاتی که مهم هستن اصلا توصیه نمیشه که اینکار رو انجام بدید!

فعلا تا همین اندازه کافیه، اگه مشکلی بود یا پیشنهادی خوشحال میشم تو کامنتها مطرح کنید :)



برچسب ها : , , , , , , , , , , , , ,