2016년 5월 19일 목요일

워드프레스 플러그인 망보드에서 네이버 스마트에디터 이미지업로드 처리 문제 수정

워드프레스 게시판 플러그인 망보드를 사용하는데..

스마트에디터로 에디터를 설정하고 파일 첨부 업로드는 모두 정상적으로 동작함.

스마트에디터의 우측상단 사진을 눌러서 이미를 등록하는 경우
파일명이 한글일때 IE에서 이미지가 나타나지 않음.

그래서 망보드의 mangbard/include/functions/func.api.php를 일부 수정


554라인에 추가


/* 업로드 파일명의 인코딩 확인. */
/* 파일명이 euc-kr인 경우 인코딩을 변환 */
$sample = iconv('euc-kr', 'euc-kr', $upload_data["name"]);
if (md5($sample) == md5($upload_data["name"])) {
$upload_data["name"] = iconv('euc-kr', 'utf-8', $file_data["name"]);
}
/* END Modify */



스마트에디터에서 업로드 하는 경우 한글파일명이 euc-kr로 인코딩 되어 들어옴.
그런경우 파일명을 utf-8로 인코딩 변경하여 저장


테스트 결과 잘 됨!

CentOS 6.x PHP 5.4.xx ffmpeg 설치

yum install ffmpeg ffmpeg-devel ffmpeg-libpostproc

yum install php-gd php-devel


https://sourceforge.net/projects/ffmpeg-php/files/OldFiles/ffmpeg-php-0.6.2.tbz2/download 다운로드


tar -xjf ffmpeg-php-X.x.x.tbz2
cd ffmpeg-php-X.x.x/
phpize

./configure && make 하면 오류발생


/bin/sh /usr/local/src/ffmpeg-php-0.6.0/libtool --mode=compile cc  -I. -I/usr/local/src/ffmpeg-php-0.6.0 -DPHP_ATOM_INC -I/usr/local/src/ffmpeg-php-0.6.0/include -I/usr/local/src/ffmpeg-php-0.6.0/main -I/usr/local/src/ffmpeg-php-0.6.0 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include/libavcodec/ -I/usr/local/include/libavformat/ -I/usr/local/include/libavutil/ -I/usr/local/include/libswscale/ -I/usr/local/include/libavfilter/ -I/usr/local/include/libavdevice/  -DHAVE_CONFIG_H  -g -O2 -Wall -fno-strict-aliasing   -c /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c -o ffmpeg_movie.lo
 cc -I. -I/usr/local/src/ffmpeg-php-0.6.0 -DPHP_ATOM_INC -I/usr/local/src/ffmpeg-php-0.6.0/include -I/usr/local/src/ffmpeg-php-0.6.0/main -I/usr/local/src/ffmpeg-php-0.6.0 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include/libavcodec/ -I/usr/local/include/libavformat/ -I/usr/local/include/libavutil/ -I/usr/local/include/libswscale/ -I/usr/local/include/libavfilter/ -I/usr/local/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c  -fPIC -DPIC -o .libs/ffmpeg_movie.o
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie___construct’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: ‘list_entry’ undeclared (first use in this function)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: (Each undeclared identifier is reported only once
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: for each function it appears in.)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:311: error: ‘le’ undeclared (first use in this function)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:346: error: expected ‘;’ before ‘new_le’
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:356: error: ‘new_le’ undeclared (first use in this function)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getComment’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:531: warning: ‘comment’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:760)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:531: warning: ‘comment’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:760)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getTitle’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:546: warning: ‘title’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:757)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:546: warning: ‘title’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:757)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getAuthor’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:561: warning: ‘author’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:758)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:561: warning: ‘author’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:758)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getCopyright’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:575: warning: ‘copyright’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:759)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:575: warning: ‘copyright’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:759)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getAlbum’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:590: warning: ‘album’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:761)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:590: warning: ‘album’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:761)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getGenre’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:604: warning: ‘genre’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:764)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:604: warning: ‘genre’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:764)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getTrackNumber’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:619: warning: ‘track’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:763)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘zim_ffmpeg_movie_getYear’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:632: warning: ‘year’ is deprecated (declared at /usr/local/include/libavformat/avformat.h:762)
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c: In function ‘_php_read_av_frame’:
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_movie.c:1215: warning: ‘avcodec_decode_video’ is deprecated (declared at /usr/local/include/libavcodec/avcodec.h:3656)


ffmpeg_movie.c 파일 내용 수정 :


line 312: list_entry *le; --> zend_rsrc_list_entry *le; 
line 346: list_entry new_le; --> zend_rsrc_list_entry new_le; 
line 360: hashkey_length+1, (void *)&new_le, sizeof(list_entry), --> hashkey_length+1, (void *)&new_le,sizeof(zend_rsrc_list_entry),

./configure && make
sudo make install

모듈이 설치된 위치가 결과로 나옴.
예) /usr/lib64/php/modules/

/etc/php.ini 에 추가
extension=/usr/lib64/php/modules/ffmpeg.so;

아파치 restart 후 phpinfo()에 ffmpeg 항목 나타나는지 확인!

* php에서 적용방법 : 퍼옴

<?php
$filename = $_SERVER["DOCUMENT_ROOT"]."xxx"; //파일명 (실제경로)

$movie = new ffmpeg_movie($filename, false);
if (is_object($movie) === false) { 
    die("movie Error");
}

$duration = floor($movie->getDuration()); //플레이타임 추출
if ($duration == 0) { 
    die("duration Error"); 
}

$codec['video'] = $movie->getVideoCodec();  //비디오코덱추출
$codec['audio'] = $movie->getAudioCodec();  //오디오코덱추출
$codec['channel'] = $movie->getAudioChannels(); //채널 추출

if ($codec['video'] == "") { 
    die("video Error"); 
}

$rand = mt_rand(0, 10); //이부분은 프레임중 랜덤하게 추출하는것이라 구간을 작게잡아야 빠릅니다 
$frame = $movie->getFrame($rand);

if (is_object($frame) === false) { 
    die("frame Error");
}

$codec['height'] = $frame->getHeight(); 
$codec['width'] = $frame->getWidth();
?>



2016년 5월 18일 수요일

EGPIS IP1335HDBIR IP 카메라 Synology NAS Surveillance Station 연결 및 녹화 하기

사무실에 보안용 IP카메라를 설치하였습니다.


요 제품인데요..
POE 포트를 이용해서 LAN 케이블 하나만 연결했습니다.

메뉴얼에 나와있는 프로그램을 설치하니 자동으로 찾아내고 웹연결로 화면도 볼수 있네요.


이 제품을 Synology NAS에 연결하여 녹화를 하도록 설정합니다.


패키지센터를 클릭해 Surveillance Station을 설치합니다.


그리고.. Surveillance Station를 실행합니다.


Surveillance Station 창이 나타나면 IP카메라 > 추가를 선택합니다.


제조사나 모델에 해당 제품이 없습니다.
EGPIS에 문의해서 어렵게 알아내었습니다.


브랜드는 [ONVIF], 포트:8899 를 입력합니다.
연결 테스트를 하면 화면이 나오지 않습니다만.. 저장을 하면 화면이 나옵니다.
테스트 결과 녹화도 잘 됩니다.


비디오 해상도를 설정합니다.


저장공간에 대한 설정을 합니다.
CCTV용으로 따로 추가한 HDD에만 저장하도록 하는 방법은 아랫부분에 설명합니다.


상시 녹화가 되는것이 아니고 동작감지를 하여 전후 5초까지 녹화됩니다.
감지영역을 설정하면 특정영역의 움직임만 포착합니다.


이제 CCTV용으로 추가한 HDD에 녹화물을 저장하도록 하겠습니다.


바탕화면의 제어판을 클릭합니다.


공유폴더를 선택합니다.

공유폴더 목록의 surveillance 를 선택하고 상단의 편집 버튼을 클릭합니다.


공유폴더 정보에서 위치 항목을 클릭해 볼륨을 선택합니다.
자료를 이동한다는 메시지를 볼 수 있습니다.


Surveillance Station의 가메라 편집에 들어가서 저장소 크기를 적당하게 설정합니다.