среда, 28 ноября 2012 г.

Как вытащить rtmp-поток на примере live.krsn.ru

live.krsn.ru содержит онлайн камеры города.
Хочется смотреть поток в vlc без рекламы, которую включают каждый раз, когда просматриваешь любую камеру.
Весь процесс описан под Win
1. Скачать rtmpexplorer. Запустить rtmpexplorer.exe, указать ссылку на камеру, http://live.krsn.ru/#c51 и нажать go.
Откроется rtmpsrv.exe, куда сграбятся все параметры rtmp-потока:
-r "rtmp://93.92.64.53/livecams" -a "livecams" -f "WIN 11,4,402,287" -W "http://live.krsn.ru/static/flash/player.swf" -p "http://live.krsn.ru/" -y "camera-51" -o camera-51.flv

2. Скачать оригинальный rtmpdump. В комплекте есть rtmpgw- локальный прокси, принимающий rtmp и выдающий http потоки. Запускать с параметрами:
-r "rtmp://93.92.64.53/livecams" -a "livecams" -f "WIN 11,4,402,287" -W "http://live.krsn.ru/static/flash/player.swf" -p "http://live.krsn.ru/" -y "camera-51" -v -D 127.0.0.1

(-o camera-51.flv убираем, добавляем 80 порт (-v) и localhost (-D))

Теперь в vlc открыть http://127.0.0.1:80. Получилось видео без рекламы

среда, 14 ноября 2012 г.

Не работает звук 5.1 в google chrome

5.1 звук работает во всех приложениях и браузерах, кроме хрома.
Решение проблемы:
1. Установить последнюю версию флеш-плеера.
2. Зайти в chrome://plugins/ , выбрать справа от Adobe Flash Player "Подробнее"
Там будет два пути, отключить тот, что ведет в хром, оставить, тот, что ведет в папку с флешем в system32.
Звук заработает как 5.1

Update от 16.04.2015. 
Все сломалось, потому что обновился Chrome до версии 42. Там они отключили поддержку NPAPI, поэтому теперь в плагинах остался один флеш-плеер от chrome. Можно исправить это, по крайней мере до сентября 2015, нужно:
1.  Зайти в chrome://flags/#enable-npapi и включить npapi. 
2. Зайти в chrome://plugins/ , выбрать справа от Adobe Flash Player "Подробнее"
Там будет два пути, отключить тот, что ведет в хром, оставить, тот, что ведет в папку с флешем в system32.
Звук заработает как 5.1

суббота, 29 сентября 2012 г.

Инструкция по оцифровке видео при помощи Easycap, VirtualDub, без рассинхронизации видео и звука


Инструкция по оцифровке видео при помощи Easycap и VirtualDub без рассинхронизации видео и звука.

Плата видеозахвата Easycap (449 рублей)

Подключение.
Установить Easycap в USB-порт ПК. 
Видео:
Подключить один тюльпан к Video-Out магнитофона и к Video-In Easycap (он подписан). 

Звук:
Подключить один тюльпан к Audio-Out магнитофона и к Audio-In Easycap. Звук получился не очень. 

Поэтому я использовал второй способ: Купить кабель, с одной стороны Jack 3.5 (как у наушников разъем), с другой стороны тюльпан. Где тюльпан - подключаем к Easycap, с другой стороны подключаем в любое из гнезд звуковой карты на ПК (я использовал синее), далее необходимо настроить в ПК в настройках звуковой карты, чтобы этот синий разъем был линейным входом.

Теперь необходимо установить VirtualDub.

Захват видео.
File - Capture AVI.
Откроется окно с захватом видео. Device - USB2.0 Grabber (DirectShow) выбрать. Video - Preview. 

На видике нажать Play. Должна появиться картинка с видика. 
Audio - Линейный вход (если же не соединяли звуковую и Easycap, то нужно выбрать Микрофон - USB Audio Interface, но звук не очень). 
Чтобы вы слышали звук, нужно поставить галочку Audio - Enable audio playback. (Советую при захвате видео снимать эту галочку, не будет тормозить захват видео, если ПК слабый, на звук это никак не повлияет)
Video - Capture Filter. Необходимо поэкспериментировать, какой стандарт (Pal/Secam) будет давать лучшее видео.  У меня это Pal/BDGHI.
Video - Capture Pin.  У меня это Видео стандарт Pal_b 720x576.
Video - Cropping. Это обрезка кадра по границе, чтобы не было лишних полосок (края магнитной пленки). У меня параметры: 8 8 12 12
Video - Swap field рекомендую установить.
Video - Compression. Если не менять параметры этого пункта, то час захваченного видео будет 
занимать примерно 100 Гб. Поэтому рекомендую скачать Huffyuv v2.1.1, установить его, и он 
появится в этом списке. Теперь выбрать его, настройки оставить по умолчанию. Это кодек, 
сжимающий без потерь видео, размер выходного файла уменьшится в 4 раза примерно, а на качество никак не повлияет.

Video - Timing.  Делам так, чтобы не было рассинхронизации.
Drop frames when captured frames are too close together - ставим галочку
Insert null frames when captured frames are to far apart - ставим галочку
Null frame burst limit - 10
Resync mode: ставим Don not resync..
Correct video ... - галочку не надо
Automatically disable - - галочку не надо
Audio latency determination - Automatic
DirectShow Options - галочку поставить только на Force audio clock..

File - Set capture file - Указать, куда мы будет сохранять захваченное видео.

Теперь Capture - Capture video - и пойдет захват видео.

Сжатие захваченного видео.
File - Open video file. Открываем наш захваченный файл, проверяем, что звук и аудио записались 
без рассинхрона.
Video - Filters. Add - Deinterlace - по умолчанию, что предлагает. Применим фильтр deinterlace, 
чтобы убрать эффект гребенки.
Audio - Direct stream copy. При сжатии аудио не сжимаем, сделаем это потом.
Теперь необходимо установить кодек x.264vfw. 
Video - Compression. Выбираем x.264vfw - H.264/MPEG-4 AVC Codec. Нажимаем Configure. Будем делать сжатия в два прохода. Необходимо задать битрейт. Для x.264 оптимальным считается битрейт (Target Bitrate) от 3000 до 6000, я поставил 3600. Выбираем Multipass - 1st pass. Нажимаем ОK. File - Quence batch operation - Save as Avi. Указываем, где будет лежать сжатый файл.
Теперь снова Video - Compression. Выбираем x.264vfw - H.264/MPEG-4 AVC Codec. Нажимаем 
Configure. Выбираем Multipass - Nth pass. Ок. Опять
File - Quence batch operation - Save as Avi. Указываем, где будет лежать сжатый файл (указываем тот же файл, что и в первый раз, это второй проход сжатия).
File - Job control. Ставим галочку Autostart, сжатие началось.

Пример по времени.
Захваченный файл 100Гб, чуть больше часа видео (без сжатия Huffyuv изначального, так был он 
занимал 25 Гб) в два прохода мой ПК сжимал Pentium 4 3.2 Ghz сжимал примерно сутки. Файл 
превратился в 4,7 Гб (но это с несжатым аудио).

Сжатие захваченного аудио.
Готово, файл сжат. Теперь нужно сжать в нем аудио. (Никаким образом, никакими кодеками не 
получилось сжать аудио при сжатии видео, например Lame, вместо звука одно шипение, пробовал на нескольких ПК, поэтому аудио сжимаем после).
File - Open video file. Открываем сжатый файл.
File - Save Wav. Сохраняем сырое аудио.
Ставим конвертор, например, Freemake Audio Converter. В него закидываем наш Wav и на выходе получаем mp3. (Из 2.2 Гб Wav получилось 147 Мб с битрейтом 256).
Теперь заходим снова в VirtualDub c нашим открытым сжатым видео.
Audio - Audio from other file. Указываем файл mp3.
Video - Direct stream copy.
File - Save as Avi.
Размер видео уменьшился с 4.7 Гб до 2.6 Гб примерно.

Надеюсь, кому-нибудь пригодится данная инструкция.

пятница, 15 июня 2012 г.

Can not connect to FireFox/MozRepl on: 127.0.0.1:4242

Can not connect to FireFox/MozRepl on: 127.0.0.1:4242 - this is popular problem who used AutoIT and FF.au3 script.
MozRepl working in any version Mozilla (10,11,12,13)
You should choose Firefox (in left-up corner your screen) -View-Toolbars-Menu Bar
Then: Tools - MozRepl-Start
Enjoy!

вторник, 25 октября 2011 г.

Вывод изображения на экран OpenCV 2.3

Самый простой вывод изображения на экран:
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include "opencv2/core/core_c.h"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
 
int main()
{
 namedWindow("hello", CV_WINDOW_AUTOSIZE);
 Mat im = imread("C:\\1.bmp",1);
 if(im.empty())
 {
  return -1;
 }
 
    imshow("display", im);
 waitKey(0);        
 
    return 0;
}
Могут возникнуть проблемы, что imread возвращает матрицу нулевого размера, и изображение не выводится на экран. Дело в том, что Linker > Input > Additional Dependencies: прописываются отдельно для Debug и Release, например, opencv_core231d.lib и opencv_core231.lib соответственно. Необходимо положить в MyProject/Debug соответствующую библиотеку с "d", и все заработает!

пятница, 7 октября 2011 г.

Как подключить OpenCV 2.3 в Visual Studio 2010

Необходимо использовать советы из 1 и 2
1.
OpenCV 2.3.1 directory structure is different from other versions. I downloaded from OpenCV-2.3.1-win-superpack.exe. This assumes x86, 32-bit architecture, so change accordingly if you are on 64-bit Windows. Note this also includes libs for static linking (instead of requiring DLLs) in OpenCV2.3\build\[architecture]\[compiler]\staticlib. Project settings (this is kind of a deluxe set that was necessary to build the opencv_stitching example):
C/C++ > Include Directories:
X:\OpenCV2.3\build\include
X:\OpenCV2.3\modules\imgproc\src
Linker > Additional Library Directories:
X:\OpenCV2.3\build\x86\vc10\lib
Linker > Input > Additional Dependencies: (this will vary from one project to the next, but you probably want the first three)
opencv_core231.lib
opencv_highgui231.lib
opencv_imgproc231.lib
opencv_features2d231.lib
opencv_flann231.lib
opencv_gpu231.lib
opencv_haartraining_engine.lib
opencv_legacy231.lib
opencv_ml231.lib
opencv_objdetect231.lib
opencv_ts231.lib
opencv_video231.lib
opencv_calib3d231.lib
opencv_contrib231.lib
Add to PATH environment variable (or copy DLLs into output directory):
X:\OpenCV2.3\build\x86\vc10\bin
X:\OpenCV2.3\build\common\tbb\ia32\vc10 (optional, for Intel Threading Building Blocks parallel processing support)

Взято отсюда:

2.Download OpenCV-2.3.0-win-superpack.exe and execute it to extract all files to a folder named OpenCV2.3. Inside this folder there are 2 directories: build and opencv. All the setup on VS2010 will refer to the build directory. For practical purposes I moved the folder OpenCV2.3 to my C:\ drive, so pay attention to the paths I suggest on this guide as yours might be different.

On Visual Studio, create a new Win32 Console Application project and name it whatever you like. After that, a new window will show up. Click on the tab Application Settings and make sure the option Empty Project gets selected:

Add a new file main.cpp to the folder Source Files, then add this code to main.cpp:
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
 
int main(int argc, char* argv[])
{
if (argc < 2)
{
    printf("Usage: ./opencv_hello <file.png>\n");
    return -1;
}
 
    IplImage* img = cvLoadImage(argv[1], CV_LOAD_IMAGE_UNCHANGED);
if (!img)
{
    return -1;
}
 
cvNamedWindow("display", CV_WINDOW_AUTOSIZE);
    cvShowImage("display", img );
 
    cvWaitKey(0);        
 
    return 0;
}

At this point, we need to configure the project so it can locate OpenCV headers and libraries. Go to the Project Properties (ALT+F7), and once the new window shows up do the following:

On the Configuration box, select All Configurations

Open Configuration Properties > C/C++ > General, and edit the field Additional Include Directories to add these 3 paths (for the headers):

C:\OpenCV2.3\build\include\opencv

C:\OpenCV2.3\build\include\opencv2

C:\OpenCV2.3\build\include

Note that include\opencv is for the C interface of OpenCV and include\opencv2 if for the C++ interface. We are also adding the folder include to prevent our build from being broken by some headers of the C interface that refer to C++ headers as opencv2\core.

Then, add the path of the libraries on Configuration Properties > Linker > General, and on the Additional Library Directories field, add this: C:\OpenCV2.3\build\x86\vc9\lib:

Finally, for this simple test we are going to add the libraries opencv_core230.lib and opencv_highgui230.lib. So go to Configuration Properties > Linker > Input and add them:

When writing more complex applications you'll probably need to add other OpenCV libs that I did not mentioned on this little project of ours.

Press F7 to Build Solution and you should see:

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
To be able to execute the application you'll need to modify the PATH environment variable of your system to add the location of OpenCV's DLLs. Add this to end of PATH:

; C:\OpenCV2.3\build\x86\vc9\bin

Взято отсюда: http://stackoverflow.com/questions/7011238/opencv-2-3-c-visual-studio-2010

После всего этого компилим проект, положив в папку debug файлы opencv_core230.lib and opencv_highgui230.lib.
Запускаем F:\Debug\1.exe Картинка.png в командной строке
И картинка выводится на экран.