воскресенье, 9 сентября 2007 г.

tips and tricks - show must go on

решил вести "в открытую", может кто дополнит ценными комментариями...
секреты командной строки - очень много интересных и полезных для работы команд и примеров.

NVIDIA, Xorg


Подгружаем Composite Extension в Xorg:

sudo nvidia-xconfig –-composite

sudo nvidia-xconfig –-allow-glx-with-composite


Смотрим, что ещё можно наколбасить:

nvidia-xconfig -A


Смотрим на свой Х-сервер:

xdpyinfo

xvinfo

glxinfo

xrestop #(особенно ежели утечки имеют место...)


RPM

Чего у нас тут (поиск – давим “/” и пишем чего трэба):

rpm -qa | sort | less


А шо тут понасовали ?:

rpm -ql имя_пакета


А это откуда ??? :

rpm -qf Путь_к_файлу/файл

rpm -qf `which файл`


Фунтик вроде бы и есть... но ушёл... далеко ушёл:

sudo rm -rf `rpm -ql имя_пакета`


Собираем из spec-а:

rpmbuild -bb Путь_к_spec_файлу/file.spec


Устанавливаем несколько версий пакетов (особенно для kernel полезно):

rpm -i пакет.rpm


Апгрейдим установленные пакеты (в живых должен остаться только один...):

rpm -Uhv пакет.rpm


Прочая... прочая... прочая...

Ежели файлов туча, а надоть их того...:

for i in `ls /каталог/`; do

mv $i /другой_каталог

done

или

(cd каталог; ls|xargs -i mv {} другой_каталог)


Удаляем хлам, старше 2-х недель:

find /Путь_к_файлам/файлы* -mtime +13 -exec rm {} \;


Удаляем файлы из списка:

cat list.txt | tr '\n' '\000'| xargs -0 rm -f


Обнулить файл:

>file

echo > file


И что у нас внутри ??? :

sudo dmidecode
hwinfo

lspci

lsdev

cat /proc/cpuinfo

cat /proc/interrupts

procinfo


А чтой-то винтик не шуршит ???:

smartctl -a /dev/ВИНТИК

hdparm -i /dev/ВИНТИК

fdisk -l


О чём Вы мне, Мадам, орали, когда я Вас грузил ???:

dmesg


Сколько секунд Юникс живе среди нас:

echo "GMT = `date +%s` seconds since 1970"


Хто здесь?! ACHTUNG!!!:

last

who

w


Что-то с памятью моей стало...:

free

vmstat


Сколько осталось на хардах под порнуху ???:

df -h


А сколько отъел этот каталог ? :

du -sh /каталог


Размер всех директорий в данном каталоге :

find . -maxdepth 1 -type d -exec du -sk {} \; | sort -rn


Файло – на чтение-запись!!!

find ./ -type f -exec chmod 644 {} \;


Каталоги – открывайте врата!

find ./ -type d -exec chmod 755 {} \;


Поиск файлов принадлежащих специфическому юзеру и перевод их нa другого:

find ./ -uid 0 -exec chown 500 {} \;


Перевод имен файлов и директорий в определенном каталоге в нижний регистр:

for x in *; do mv "$x" "`echo $x | tr [A-Z] [a-z]`"; done


Удаление пропусков в именах файлов и директорий и подстановка нижней черты “_” в определенном каталоге:

for x in *; do mv "$x" `echo $x | sed -e 's/ /_/g'`; done

или

for x in *; do mv "$x" ${x// /_}; done


Что вообще происходит ??? :

top

ps aux

pstree


Re: Как удалить символы из строки средствами bash?

a="1 2 3 4" ; b=${a// /} ; echo $b

1234


Меняем время на часах:

допустим, что сейчас 31 июля 23:30:04 года 2007-го:

sudo date “073123302007.04”


теперь сбросим это время на часы компа:

sudo /sbin/hwclock --systohc


Монтируем ftp в файловую систему (для curlftpfs версии 0.9.1 и выше)
выполняем скрипт таким образом (опция codepage - не сочтите за рекламу):
$
~/bin/mount_ftp kernel.org
для размонтирования достаточно выполнить mount_ftp без аргументов. монтирование пользователем без параметра allow_root крайне нежелательно (с точки зрения администратора по крайней мере).

$ cat ~/bin/mount_ftp

#!/bin/sh
mount_folder="/mnt/ftp"

if [ "`mount | grep $mount_folder`" == "" ] ; then
sudo curlftpfs ftp://$1 $mount_folder -o \

codepage=cp1251,uid=1000,gid=100,allow_other
else sudo fusermount -u $mount_folder && \
sudo curlftpfs ftp://$1 $mount_folder -o \

codepage=cp1251,uid=1000,gid=100,allow_other \
|| { echo "error occured or you just unmount your ftp" && exit ; }
fi
# EOF


несколько полезных программ для поддержания хорошего настроения:

snort
aide
rkhunter
chkrootkit



AUDIO/VIDEO

Переводим видео из avi в gif :

mplayer -vo png video.avi

convert -dispose previous -delay 10 -page +0+0 *.png animation.gif


Делаем “сдвиги” в видеофайлах:

ffmpeg -i 1.avi -padcolor 00FF00 -padleft 100 -s 630x480 2.avi

Слушаем радио:

mplayer http://адрес:порт/точка_монтирования

N.B. По http://адрес:порт/точка_монтирования.m3u или http://адрес:порт/точка_монтирования.pls нам “выдадут” плейлист, но нам он не нужен. Можно сохранить плейлист, открыть и посмотреть, куда именно обращаться.


Смотрим мультикаст видео:

mplayer udp://@адрес:порт

Смотрим, что у нас с видео и аудио кодеками:

mplayer -vc help

mplayer -ac help

mencoder -ovc help

mencoder -oac help

ffmpeg -formats


Смотрим наши “демуксеры”:

mplayer -audio-demuxer help


Перебиваем индексы в битом видео для работы “перемотки”

mplayer -forceidx file.avi


Делаем видео из jpg файлов:

mencoder "mf://*.jpg" -mf fps=25 -ovc copy -o file_jpg.avi
Прикручиваем к этому видео звуковую дорожку:
mencoder file_jpg.avi -o file_jpg_snd1.avi -oac copy -ovc copy -audiofile audio.mp3
Прикручиваем к этому видео вторую звуковую дорожку:

ffmpeg -i file_jpg_snd1.avi -i audio2.mp3 -vcodec copy \

-acodec copy file_jpg_snd2.avi -newaudio


Потрошим DVD:

ffmpeg -i /media/dvd/VIDEO_TS/VTS_01_1.VOB \

-acodec copy -map 0:2 audio.ac3


FFmpeg version SVN-r9451, Copyright (c) 2000-2007 Fabrice Bellard, et al.

configuration: --prefix=/usr/local --mandir=/usr/share/man --enable-libmp3lame --enable-libogg --enable-libvorbis --enable-libfaad --enable-libfaac --enable-libxvid --enable-liba52 --enable-pp --enable-swscaler --enable-gpl --enable-gprof --enable-libx264 --enable-libamr-nb --enable-libamr-wb --enable-pthreads --enable-x11grab --enable-libtheora --cc=/home/sda/bin/gcc

libavutil version: 49.4.1

libavcodec version: 51.40.4

libavformat version: 51.12.1

built on Jun 29 2007 21:03:07, gcc: 4.2.0
Input #0, mpeg, from '/media/dvd/VIDEO_TS/VTS_01_1.VOB':
Duration: 00:25:11.8, start: 0.287267, bitrate: 5680 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576, 7500 kb/s, 25.00 fps(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5:1, 384 kb/s
Stream #0.3[0x82]: Audio: ac3, 48000 Hz, stereo, 96 kb/s
File 'audio.ac3' already exists. Overwrite ? [y/N] y
Output #0, ac3, to 'audio.ac3':
Stream #0.0: Audio: ac3, 48000 Hz, 5:1, 384 kb/s
Stream mapping:
Stream #0.2 -> #0.0
Press q to stop encoding
size= 37988kB time=810.4 bitrate= 384.0kbits/s
video:0kB audio:37988kB global headers:0kB muxing overhead 0.000000%
Received signal 2: terminating.

*******************************************************************************************************


разбираем "на пальцах". выше - dvd с тремя аудио дорожками и одной видео:
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576, 7500 kb/s, 25.00 fps(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5:1, 384 kb/s
Stream #0.3[0x82]: Audio: ac3, 48000 Hz, stereo, 96 kb/s


а команда в самом верху делает копию второй аудиодорожки в audio.ac3 (без потерь),
соответственно можно скопировать все 3 аудиодорожки а потом - запихать их в пережатую (надеюсь, что x264-м кодеком) авишку, огг или что-там-душа-просит... (“потрошить” можно практически всё, равно как и “собирать”)


Тупенько рипаем DVD (параметры x264encopts лучше сразу положить в ~/.mplayer/mencoder.conf):

mencoder dvd://1 -oac copy -ovc x264 -o dvdrip.avi

или

mencoder dvd://1 -oac mp3lame -ovc x264 -o dvdrip.avi


Собираем несколько видеофайлов в один (можно с -nosound если вдруг чего):

mencoder file.avi file1.avi file2.avi ... -o result.avi


Делаем мувик для мобилки с экраном 128x96:

ffmpeg -i file.avi -s sqcif -ar 8000 -ac 1 -ab 12.2K file.3gp

или

ffmpeg -i file.avi -s 128x96 -ar 8000 -ac 1 -ab 12.2K file.3gp


Кодируем mencoder-ом на лету видео с ТВ-тюнера в файл tv.avi:

mencoder -tv driver=v4l2:width=768:height=576:device=/dev/video0:norm=SECAM:buffersize=128:f ps=25:audiorate=22050:forceaudio -oac mp3lame tv:// -o tv.avi -ovc lavc -lavcopts vcodec=mpeg4:autoaspect=1:vbitrate=1200:vme=4:vqscale=3:vb_strategy=1:keyint=30


Опций и вариантов – море, читайте маны, экспериментируйте, у Вас в руках – самые мощные универсальные средства для работы с мультимедиа. Они требуют многого, но и результат того стоит.

Вот ещё несколько ссылок по кодированию видео с помощью mplayer/ffmpeg:

http://strannick.blogspot.com/2007/04/x264.html

http://www.linuxjournal.com/article/9005

http://www.opennet.ru/base/sys/mencoding_pop.txt.html

Проект ffmpeg развивается очень динамично, поэтому информация по использованию опций кодеков (особенно x264) “устаревает” довольно быстро. Если что-то не получается – не паникуйте. Кодирование видео – не простая дисциплина, старайтесь больше экспериментировать и читайте документацию к каждому используемому кодеку.


Комментариев нет: