видео
Вебкамера через mplayer
Моя Logitech камера запустилась сразу
$ mplayer tv://С параметрами по умолчанию которые можно менять
$ mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=640:height=480конвертирование видео для просмотра на мобильных устройствах
Пока еду на работу смотрю видео на телефоне. А чтобы упростить задачу конвертирования нормального видео в формат который без проблем показывается на мобильном устройстве использую следующий простенький скриптег.
#!/bin/bash in=$1 out=${in%.*}.m.avi echo $in "==>" $out info=$(mplayer -identify $in -ao null -vo null -frames 0) width=$(echo $info | sed -n "s/.*ID_VIDEO_WIDTH=\([0-9]*\).*/\1/p") height=$(echo $info | sed -n "s/.*ID_VIDEO_HEIGHT=\([0-9]*\).*/\1/p") aspect=$(echo "scale=4 ; $width / $height" | bc) echo "width="$width ", height="$height ", aspect="$aspect nwidth=320 nheight=$(echo "$nwidth / $aspect / 2 * 2" | bc ) echo "nwidth="$nwidth ", nheight="$nheight ffmpeg -y -i $in -vcodec libxvid -s ${nwidth}x${nheight} -r 25 \ -acodec libmp3lame -ac 2 -ar 44100 \ -threads 3 -bf 2 -umv -4mv -me full -g 250 $out
Я обозвал этот скрипт avi4mobile.sh и вызываю следующим образом
$ avi4mobile.sh video.aviпри этом создается файл video.m.avi (m - в смысле мобильный)
при конвертировании сохраняется отношение ширина/высота.
Линки в тему на сайте:
Как вырезать фрагмент видео в командной строке
Вырезает из файла PinguinMST1.avi фрагмент видео начиная с 3-й минуты 54 секунд по 6-ю 11 секунды.
Результатом будет файл pinguin.avi закодированный видеокодеком mpeg4.
$ mencoder PinguinMST1.avi -ss 3:54 -endpos 6:11 -o pinguin.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4Хронометраж можно узнать просмотрев видео в mplayer включив отсчет времени клавишей o.
Извлекаем аудио из видео файла
$ mplayer -dumpaudio -dumpfile tol-osen.mp3 -audio-demuxer 17 TOL_-_Osen.mpg
MPlayer dev-SVN-rUNKNOWN-4.1.3 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz (Family: 6, Model: 15, Stepping: 6)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Can't open joystick device /dev/input/js0: No such file or directory
Can't init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing TOL_-_Osen.mpg.
MPEG-PS file format detected.
Core dumped ;)
Exiting... (End of file)
$UPT:
перекодировать таки в mp3 после того как звуковая дорожка была извлечена:
$ ffmpeg -i ~/tol-osen.mp3 -acodec libmp3lame ~/tol-osen2.mp3Создание видео с экрана
Для создания видео интерактивного урока очень удобно использовать программу xvidcap.
Можно указать область экрана которую нужно записывать. Так же одновременно пишется звук.
Для Debian достаточно прописать в /etc/apt/sources.list
===
deb http://www.debian-multimedia.org etch main
deb http://www.debian-multimedia.org sid main
deb http://www.debian-multimedia.org experimental main
===
и
===
apt-get update
apt-get install xvidcap
Пример о том как установить xvidcap на Debian (3.6M)
http://core.org.ua/tmp/test-0000.mpeg
Видео о том как записывался пример выше Ж:-) (5.4M)
http://core.org.ua/tmp/howto-make-screen-capture.mpeg
Mencoder сильно теряет кадры
При захвате даже в raw с видеовхода карты AVerMedia TVPhone98 сильно терялись кадры, mencoder сыпал кучу сообщений Skipped frame!. Естественно захваченное видео получалось с подергиваниями. Избавиться от этого помогла опция -noskip (найдена в мане к mencoder). Т.е. команда для захвата выглядит так:
$ mencoder -endpos 03:05:00 tv:// -tv fps=25:driver=v4l:device=/dev/video0:width=576:height=448:input=1:norm=PAL -noskip -ovc nuv -oac pcm -o /mnt/WD/test.aviПроверено на RH 9, ядро 2.4.20-8, проверено на mencoder версий 1.0pre4-1.0pre7.

