728x90
반응형

1. 포트 추가

 )vi /etc/sysconfig/iptables

 적용 ) service iptables restart or start

 

2. 네트워크 설정

 ) vi /etc/

 

telnet 사용법

 

리눅스 각종명령어

 

/etc/hosts 처럼 윈도우 xp 에서는 windows/system32/drivers/etc/hosts 를 추가할수있다.

 

df -> 용량 체크

df -h

 

vim에서 하이라이트기능

on:set hlsearch

off:nohl

 

 

 

tree

 

======== svn ========

svn st

svn st -h | less

 

======== 찾기 명령어들 ========

find .(현재경로) -name (찾고자하는 이름) -print

 -ls

 

find /절대경로 -name (찾고자하는 이름)

 

grep -i 찾는이름 *        대소문자 구분없음

-B 는 위에 라인을 보여준다

-F 는 ㅋ

 

grep -n         행의 줄표시

 

================================

vi servers

.srbversion

 

store-plaintext-passwords = yes

이걸로인해 권한설정이안‰獰珦?

 

gedit

 

우분투 프로그램 강제종료

ps -A

kill -9 [pid]

 

리눅스 path 추가경로

1. /etc/environment

 

2. source environment 실행

 

 

디렉토리 통째 압축

 

gzip사용시

>tar zcvf 파일명 디렉토리명

(파일명은 .tar.gz으로)

 

bzip사용시

>tar jcvf ...

 

 

tar.gz 풀때

xvzf 

tar 풀때

xvf

 

z: 압축률

 

cvf tar의 옵션이고, z/j gzip/bzip으로 압축한다는 옵션임.

즉 압축없이 묶기만 할땐, z/j를 빼면 된다는..

 

-------------------------------------------------------

디렉토리 압축  tar cvf 파일명.tar.gz  디렉토리명

해제                tar xvf 파일명

-------------------------------------------------------

 

덧붙여 .xz 가 있는데 xz -d 로풀어준다

 

 

가끔 아래의 메시지와 같은 에러가 발생하면서 프로그램 실행이 안돼는 경우가 있다.

 

=======파일에서 단어찾기

grep 단어 파일명

 

-b

-i 대소문자 구별 x

-n 행까징

 

grep

r 하위디렉토리까지 검색

 

 

make -j multithread build

엄청빨라짐

 

 

 

 

 

 대표적으로 make를 실행할 때 가끔씩 발생한다.

 /bin/sh: Syntax error: Bad fd number

 

 우분투에서는 다음과 같은 명령어 커맨드로 해결할 수 있다.

sudo rm /bin/sh

sudo ln -s /bin/bash /bin/sh

[출처] /bin/sh: Syntax error: Bad fd number|작성자 괴도키드

 

 

 

 

쉘확인

echo $SHELL

 

vim 편집기

n line <= line 으로 이동

 

오류메세지 남기는법 log 파일에

makefile 2>>log

 

 

vim 에서 모르는 구조체나 함수가 있다면 그곳에서 ctrl+] 누르면 정의된 곳으로 가고

다시 되돌아 가려면 ctrl + t 를 누르면 복귀

 

ctags 로 생성되어진 파일은 그 디렉토리에서만 사용가능함. 그래서

./etc/vimrc 에서 추가로 set tags += 파일 디렉토리/tags 파일을 추가한다.

 

추가로

명령모드에서 tag 로 이동하고 싶다면

ex)

:ta task_struct (== :tag task_struct)

검색겨로가 next

:tn (==:tag next)

:tp (==:tag previous)

 

:ta [name] : name 과 일치하는 tag 로 이동

:ts [name] : name 과 일치하는 tag 목록 출력

:tags            : 이동한 tag 히스토리 목록 출력

 

 

사용자 변경

chown -R 폴더안 파일들까지

형식 : chown [계정명] [파일명] #파일의 소유자만 변경할경우

형식 : chown [계정명:그룹명] [파일명] #파일의 소유자및소유그룹을 함께 변경할경우

or . 으로 테스트해보기

ex)

-. 파일의 소유자 변경하기

 

testfile의 소유자를 root에서 user1로 변경하였다.

[root@os1 ~]# ls -l testfile

-rw-r--r-- 1 root root 0 2013-01-19 15:07 testfile

[root@os1 ~]# chown user1 testfile

[root@os1 ~]# ls -l testfile

-rw-r--r-- 1 user1 root 0 2013-01-19 15:07 testfile

 

-. 파일의 소유자와 소유그룹 함께 변경하기

testfile의 소유자와 소유그룹을 root에서 user1로 변경하였다.

[root@os1 ~]# ls -l testfile

-rw-r--r-- 1 root root 0 2013-01-19 15:07 testfile

[root@os1 ~]# chown user1:user1 testfile

[root@os1 ~]# ls -l testfile

-rw-r--r-- 1 user1 user1 0 2013-01-19 15:07 testfile

 

 

다음과 같이 scp 명령어를 이용하여,

서버에서 다른 서버로 복사할 때 속도를 설정하여, 복사할 수 있다

 

# scp -l [KB 속도] [파일명] [복사될서버경로]

 

다음은 위에서 제시한 방식으로 명령어를 수행한 내용이다.

400KB 속도로 test.tar.gz 파일을 다른 서버의 /opt 경로로 복사하는 예제이다.

# scp -l 400 test.tar.gz root@server:/opt

 

파일옮기기

scp -fr

 

scp -옵션 [옮길파일] [서버계정@ 서버아이피:/저장공간]

A서버 프로필(Source) :

IP : 10.1.51.169

사용계정 : develop

옮길 파일 : /home/search/test/

 

B서버 프로필(Destination) :

IP : 10.1.51.168

사용계정 : search

올릴 경로 : /home/solution/

 

다음의 명령으로 전송할 수 있다.

절대경로로

$ scp -r /home/search/test search@10.1.51.168:/home/solution/

 

아파치란(Apache)

- 한마디로 웹서버(웹서비스를 제공하는 서버)

 

 

vim etc/hosts

서버주소

ex) 218.36.33.100 figi 하면 define

 

apt-cache search 이름 -> serch

 

 

 

정규식 표현을 이용한 grep

hg st | grep ^M | awk '{print $2}'

 

awk 2번째 문자열을 parsing

 

hg remove `hg st | grep ^M | awk '{print $2}'` --dry-run

hg remove `hg st | grep ^M | awk '{print $2}'` -f

find drivers/sys_lib -name '*.x' | sed -e 's/\.x//' | xargs -I @ mv @.x @.a

 

find drivers/sys_lib -name '*.a' | sed -e 's/\.a//' | xargs -I @ mv @.a @.x

find /source/newcon4/newcon4/boot/msd7816/u-boot-1.1.6 -type f \

\( -name 'core' -o -name '*.bak' -o -name '*~' \

-o -name '*.o'  -o -name '*.a' -o -name '*.depend' \) -print \

| xargs rm -f

find drivers/sys_lib -name '*.x' | sed -e 's/\.x//' | xargs -I @ mv @.x @.a

 

grep -v 제외

 

make 2>log -> log warning 이랑 error 이 들어간다.

 

 

export NEWGUI=1

->env 설정에 newgui=1 이 등록됨

728x90

'프로그래밍 > Linux' 카테고리의 다른 글

[DataBase] DB - Mysql Dump  (0) 2020.12.31
[CROSS-COMPILE] openssl 컴파일  (0) 2020.12.24
[openssl] Cross-compile 방법.  (0) 2020.12.17
[FTP] Anonymous 접속 설정  (0) 2020.12.17
[삼바] 삼바 설치 및 설정 방법 (samba setup)  (0) 2020.06.30
728x90
반응형

Openssl 을 임베디드 환경에 Cross-compile하는 방법을 소개.

작성 기준일은 2018/09/05이며 현재 시간으로 작업을 해도 별 차이는 없을 거라 판단 합니다.

 

참고 사이트 : http://takhwan.blogspot.kr/2016/03/arm-openssl.html

 

ARM용 OpenSSL 크로스 컴파일하기

ARM 타겟 보드 용 OpenSSL 라이브러리 생성하기 openssl-1.0.1s

takhwan.blogspot.com

위 사이트 접속 하면 조금 더 디테일 하게 참고 할 수 있습니다. 

 

컴파일 환경은 ubuntu14.04이며 arm용으로 크로스 컴파일 합니다.

목적은 브로드컴 보드가 기반인 임베디드 장비에서 사용하기 위함.

 

  • toolchain source해줄것.
  • configure
    ./Configure linux-generic32 shared -DL_ENDIAN --prefix=/home/shlee/xml_rpc/openssl-arm --openssldir=/home/shlee/xml_rpc/openssl
  • make 
    make install CC=arm-linux-gcc RANLIB=arm-linux-gnueabihf-gcc-ranlib LD=arm-linux-gnueabihf-ld MAKEDEPPROG=arm-linux-gnueabihf-gcc PROCESSOR=ARM
  • 참고 사이트
  • 빌드 완료 된 openssl 파일을 타겟에서 실행 하면
    symbol lookup error: ./openssl: undefined symbol: i2d_DHxparams
    위에 같은 에러가 발생 하는 경우 컴파일 하면서 생성 된 lib파일을 타겟의 libs/lib 에 복사 해 주면된다.
  • ps) libssl이나 lib crypto는 현재 타겟 이미지를 만들면서 만들어지는 라이브러리 인데 openssl 컴파일 하면서 생성된 라이브러리로 교체 해주었을 때 타겟 이미지가 정상 적인 동작을 하는지 확인이 필요하다.
  • openssl.cnf path 설정.
  • openssl 실행 후 WARNING: can't open config file: /home/shlee/xml_rpc/openssl/openssl.cnf 발생 할 경우
    export OPENSSL_CONF=/mnt/hd/openssl.cnf
    위 처럼 설정 해주면 해당 warning메세지 발생 안함. libpath 파일에 등록 하고 소싱 해주면 됨.
  • 최종 실행 방법
    1. openssl
    2. version
    이후에 본인이 설정한 버전이 맞는지 확인 하면 일단 설치는 완료.

 

정상 동작 확인 하였고 실제 사용 중입니다

728x90
728x90
반응형

이전에 기록 하였던 내용을 해당 블로그로 가져 왔습니다.

 

1. 익명 접속가능 설정.

  - vi /etc/vsftpd/vsftpd.conf

  - anonymous_enable = NO -> YES 변경

  - pasv_enable = YES ( 없으면 맨 밑에 추가 )

  - anon_upload_enable=YES (주석해제)

 

2.  설적적용

  - service vsftpd restart

 

3. 참고

  -anonymous 로 사용 할 경우 /var/pub (익명디렉토리) 에서 사용이 가능함.  chmod 777 pub 설정 해줘야됨.

  - 추 후  pub안에 다른 폴더를 생성 할 경우에도 권한 설정을 777로 변경 해주어야 됨.

 

4. 익명 디렉토리 변경

 - vi /etc/passwd

 방법 참고 사이트 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_install&wr_id=87362&sca=&sfl=mb_id%7C%7Csubject&stx=trim703&sop=and

 

 

 

참고 사이트

1. http://tweegim.tistory.com/18

2. http://blog.naver.com/PostView.nhn?blogId=dudwo567890&logNo=130160290383

728x90
728x90
반응형

업무에서 ffmpeg를 사용 하여야 해서 사용한 옵션 및 해당 명령어의 결과 내용을 정리(마구잡이...)

 

 

rtmp 스트림 전송 : ffmpeg -hwaccel dxva2 -re -i D:\DSB_WORK\streams/Sen.mp4 -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp://localhost/live/Sen  (하드웨어 가속기를 사용 하면 속도가 조금 더 빨라지지만 느림.)

 

샘플 명령어 : ffmpeg -s 7680x3072 -pix_fmt yuv420p10le -i input.yuv -vf trim=start_frame=0:end_frame=120 -filter:v "crop=3840:3072:0:0" -c:a copy output.yuv

 

JPG 테스트 명령어 : ffmpeg -s 3840x2160 -pix_fmt yuv420p10le -i D:\DSB_WORK\Encoder\FFMPEG\test/flower.jpg -vf trim=start_frame=0:end_frame=120 -filter:v "crop=1920:1080:0:0" -c:a copy D:\DSB_WORK\Encoder\FFMPEG\test/out_flower.jpg

 

mp4 테스트 명령어 : ffmpeg -i D:\DSB_WORK\streams/Sen.mp4 -filter:v "crop=1920:1080:0:1080" -c:a copy D:\DSB_WORK\Encoder\FFMPEG\test/out_Sen2.mp4

 

잘린 영상 합치기

: ffmpeg -i out_Sen.mp4 -vf "[in] pad=iw:2*ih [top]; movie=out_Sen2.mp4 [bottom]; [top][bottom] overlay=0:main_h/2 [out]" -y D:\DSB_WORK\Encoder\FFMPEG\test/out_merge_Sen.mp4

 

: ffmpeg -video_size 960x540 -i out_sen1.yuv -vf "[in] pad=iw:2*ih [top]; movie=out_sen2.yuv [bottom]; [top][bottom] overlay=0:main_h/2 [out]" -y out_left.yuv

 

: ffmpeg -video_size 960x540 -i out_sen1.yuv -video_size 960x540 -i out_sen2.yuv -video_size 960x540 -i out_sen3.yuv -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih[1v][0v];[2:v][0v]scale2ref=oh*mdar:ih[2v][0v];[0v][1v][2v]hstack=3,scale='2*trunc(iw/2)':'2*trunc(ih/2)'" final.mp4   (3개의 영상 슬라이더 형태로)

 

: ffmpeg -video_size 960x540 -i out_sen1.yuv -video_size 960x540 -i out_sen2.yuv -video_size 960x540 -i out_sen3.yuv -video_size 960x540 -i out_sen4.yuv -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih[1v][0v]; [2:v][0v]scale2ref=oh*mdar:ih[2v][0v]; [3:v][0v]scale2ref=oh*mdar:ih[3v][0v]; [0v][1v][2v][3v]hstack=4,scale='2*trunc(iw/2)':'2*trunc(ih/2)'" out.yuv (4개의 영상 슬라이더 형태로)

 

: ffmpeg -video_size 960x540 -i out_sen1.yuv -video_size 960x540 -i out_sen2.yuv -video_size 960x540 -i out_sen3.yuv -video_size 960x540 -i out_sen4.yuv -filter_complex "[0:v][2:v]hstack=inputs=2[top];[1:v][3:v]hstack=inputs=2[bottom];[top][bottom]vstack=inputs=2[v]" -map "[v]" output.yuv ( 4개의 영상을 2x2 top/bottom처리 합치기 )

 

하드웨어 가속기 사용 영상 자르기

ffmpeg -hwaccel cuvid -c:v h264_cuvid -crop 0x1080x0x1920 -i D:\DSB_WORK\streams/Sen.mp4  -y -c:v h264_nvenc D:\DSB_WORK\Encoder\FFMPEG\test/hw_out_Sen.mp4  (동작됨)

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i D:\DSB_WORK\streams/Sen.mp4 -c:v h264_nvenc -filter:v "crop=1920:1080:0:0" -c:a copy D:\DSB_WORK\Encoder\FFMPEG\test/hw_out_Sen.mp4

 

rawvideo 재생. ffplay -s 1920x1080 -pixel_format yuvj420p -framerate 23.98 -i dump.yuv

rawvideo 다운. ffmpeg -c:v h264_cuvid -crop 0x1080x0x1920 -i D:\DSB_WORK\streams/Sen.mp4  -y -pix_fmt yuvj420p -f rawvideo dump.yuv

리다리엑션 덤프 . ffmpeg -c:v h264_cuvid -crop 0x1080x0x1920 -i D:\DSB_WORK\streams/Sen.mp4  -y -pix_fmt yuvj420p -f rawvideo - > dump.yuv

덤프받은 영상 재생. ffplay -pixel_format yuvj420p -video_size 192x108 -framerate 24 dump.yuv

 

crop 미리보기 ( 하드웨어가속기 사용 ) ffplay -vcodec h264_cuvid -vf crop=1920:1080:0:0 D:\DSB_WORK\streams/Sen.mp4

 

ffmpeg -c:v h264_cuvid -crop 0x1080x0x1920 -i D:\DSB_WORK\streams/Sen.mp4  -y -pix_fmt yuvj420p -f rawvideo > ffplay -s 1920x1080 -pixel_format yuvj420p -framerate 23.98

 

더 테스트해볼 것. ffmpeg -hwaccel_output_format cuda -c:v h264_cuvid -crop 0x1080x0x1920 -i D:\DSB_WORK\streams/Sen.mp4  -y -c copy -f mpegts - | ffplay -fs -

 

* ex) text.mp4 gpu crop format yuvj420 rawvideo data를 바로 ffplay로 재생하는 방법?

 

* 네임드파이프 전송 및 재생.

ffmpeg -c:v h264_cuvid -crop 540x1080x960x1920 -i D:\\DSB_WORK\\streams\\Sen.mp4 -y -c copy -f mpegts pipe:\\.\pipe\out_1 | ffplay -i pipe:\\.\pipe\out_1

 

 

-s 화면 크기 지정 (WxH 또는 비율)

-pix_fmt 픽셀 포멧 설정. list는 지원되는 모든 픽셀 포멧 보여줌.

-i input파일.

-vf

-filter:v

-crop 잘라내는 크기.

( 보통 -croptop, -cropbottom 형태로 상단,하단,,오 설정하여 크기 지정한다.)

( 현재 crop crop=width_to_crop:height_to_crop:top_left_x:top_left_y )

-> 첫번째:자를영역의 너비,

-> 두번째:자를영역의 높이,

-> 세번째:자르기를 시작할 좌상단 x좌표

-> 네번째:자르기를 시작할 좌상단 y좌표

-c:a 복사.

728x90
728x90
반응형

이전에 올렸던 자료를 정리겸 포스팅 한다.

 

주제는 달력데이터 입니다. 내가 원하는 년도를 입력 하면 그 해당 년도에 맞게 데이터를 뽑아와서 DB에 저장 합니다.

그리고 토 / 일 은 주말 = 'N' 월~금 은 평일 = 'Y'

또한 윤년 계산 및 해당 년도 국가 지정 공휴일 포함 하였습니다.

 

먼저 날짜 데이터를 뽑아 옵니다.





 

 

뽑아온 데이터를 가지고 주말 평일 구분 지어서 DB에 insert를 합니다. 그리고 같은 데이터를 또 입력 할 경우에는

업데이트를 하도록 하였습니다.

 

 

DB에 접속하는 부분

 

 

국가 지정 공휴일 데이터를 가져오는 부분입니다.

 

지정 데이터는 2013년도의 데이터를 준비 하였으며 그 해당 외 입력시에는 

 

지정 데이터가 적용이 안되야겠지요?

 

또한 필요 하다면 추가 시키면 됩니다.

 

이상합니다. 수고하세요

728x90
728x90
반응형

C언어가 아니여도 되고 그냥 기초 다지기 입니다.

 

실행환경은 리눅스입니다.

위에 그림을 보면 구조 AA, BB가 있는데 엇뜻 보면 두개 다 같을 것입니다.

하지만 각각 결과는 다르죠

밑에 그림을 보시면 결과가 다를 겁니다.

 

 

AA는 16바이트 BB는 20바이트가 나오게됩니다. 이거는 구조체 안에 변수의 위치 따라 달라지게 됩니다.

 

이럴때는 간단한 메모리맵을 그려서 확인하는것도 나쁘진 않습니다.

환경이 32비트환경입니다. 그러면 32비트 = 4바이트,    64비트 = 8바이트가 됩니다.

현재 그림은 32비트 환경의 컴퓨터입니다. 그러므로 4바이트씩 나누어 지게 되는거죠. char a,b는 1바이트입니다. 하지만 4바이트씩 나눈다고 했습니다. 일단 그림으로 봤을 때는 a,b= 2바이트 c=4바이트 d=8바이트 하지만, 4바이트씩 인식이 되므로,

a,b는 4바이트 c는 4바이트 d는 8바이트 이므로 16바이트가 됩니다.

 

그림을 보면 바이트 단위로 나누어져 있습니다. 8바이트 역시 4바이트씩 나누어 지지만 그 크기 자체가 8바이트 이기 때문에 4바이티 + 4바이트 = 8바이트가 되는 겁니다.

 

 

또한 BB구조체  경우에는  a = 1바이트 , b = 4바이트, c = 1바이트, d = 8바이트 입니다. 이 경우에는 출력을 할 경우에 20바이트가 되게 되는데요. 그 이유를 보면

아까 말씀 했듯이 4바이트 단위로 나누어 집니다. a는 1바이트 그럼 3바이트가 남죠 4바이트 - 1바이트 = 3바이트 이런식이니깐요. 그러면 b는 기본 4바이트 이기 때문에 채워질수가 없어서 4바이트를 따로 담습니다. 그러면 총 현재 8바이트가 되죠, 그다음 char형 c는 1바이트 지만 4바이트 기준으로 4바이트에 채워지면서 4바이트 12바이트가 됩니다. 또한 double형은 기본 8바이트죠 4바이트 형식 두번 채워지므로 총 8바이트 입니다. 4  + 4 + 4 + 8바이트 = 20 바이트가 됩니다.. 설명이 너무 난해 할수도 있는데요.. 궁금하시면 답변 따로 드리겠습니다.

배열이 또 들어가면 그 메모리형식은 또 달라지게됩니다.

이 것이 중요한 이유는 기본적으로 우리가 memcpy를 할 때 강제 사이즈를 주는 경우가 있는데 이렇게 되면 32비트 64비트 형식일때 들어가는 사이즈가 달라집니다 이점 유의하시기 바랍니다.

 

 

-------------------------------------------------------------------------------------------

그리고 AA구조체에 배열을 추가 해서 할경우에는 

 

AA구조체는 20바이트가 됩니다. 물론 4바이트 니깐 16바이트에서 20바이트가 되는거겠죠?

하지만. 그림을 그려보면

[a,b0,b1,b2][b3,x,x,x][c,c,c,c][d,d,d,d][d,d,d,d] = 20byte 이런식으로됩니다.

그전에 배열이 빠졌을 경우에는?

[a,b,x,x][c,c,c,c][d,d,d,d][d,d,d,d] = 16byte가 되는겁니다. 내부구조를 알면 더 손쉽게 이해하기가 쉽니다. 

 

728x90
728x90
반응형

FFMPEG을 활용하여 rmpt프로토콜를 사용해 스트림을 실시간 재생하는 일이 생겼다.

그래서 맨 처음 Nginx을 활용하여서 live 및 vod를 구성 하여 테스트를 하였는데. 와우자 클라우드를 사용하여 ffmpeg으로 실시간 디코딩을 할 일이 생겨서 정리를 해보았다.

 

설정하기전 와우자 로그인 부터 클라우드 부분 진입까지는 숙지 했다는 가정하에 정리를 하였다.

 

1. 라이브 스트림 추가.

최 상단에 Live Streams라는 탭을 클릭.

 

 

2. 설정 방법1 (Live Stream Setup)

그림에 표시 된 순서되로 작업.

 

3. 설정방법2-1 ( Video Source and Transcoder Settings)

RTMP Protocol를 사용.

 

4. 설정방법2-2 ( Video Source and Transcoder Settings)

추가적으로 원하는 부분은 옵션을 더 선택 해줘도 됨.

5. 설정방법3  (Playback Settings)

 

6. 설정방법4 ( Hosted Page Settings )

해당 선택 부분은 Play하는 페이지에 표시될 내용이다.

 

7. 설정방법5 (Review Settings)

지금까지 설정한 내용을 보는 부분이고 부족하거나 잘못된 부분은 수정이 가능 함.

 

8. 설정이 완료 된 페이지의 Overview

 

1. 실행방법(1) (Local -> Wowza Cloud로 스트림 실시간 전송)

  FFMPEG동작은 윈도우10에서 CMD창에서 동작 하였음. (ffmpeg에 사용된 옵션은 무시 해도 됨.)

  FFMPEG에 따라서CUDA옵션등은 사용 못하는 경우가 있음. 이럴 경우 ffmpeg소스를 다운받아 옵션 적용 후 재설치 하면 된다.

자세한 내용은 ffmpeg홈페이지 참조.

 또한 해당 이미지에 보면 별도의 nginx와 다르게 stream name은 자동으로 생성이 된다. 대략 헤쉬값이라고 치자.

 

 

실행방법(2) (Wowza cloud에서 확인)

 

실행방법(3) (Local에서 Wowza Cloud Stream확인)

 

실제 와우자 클라우드에서 전송되는 스트림을 ffmpeg을 이용하여 ffplay로 바로 재생하는 모습이다.

화질이 좋지 않은 이유는 옵션 문제이며 옵션 설정만 제대로 해주면 문제 없이 화질 개선이 가능하다.

 

 

Trouble shoot

 Wowza Cloud와 nginx를 사용 하였을 때 timestamp값의 차이가 발생 한다.

실시간 전송 중 wowza는 자체적으로 timestamp값을 초기화해서 보내 주는 것 같다.

그러나 nginx는 timestamp값이 실시간에 적용 되어 실기간 위치의 timestamp값이 적용 되는 것을 media info에서 확인을 하였는데 여러 영상의 동시 싱크를 맞출 때 wowza cloud는 문제가 timestamp로 인해 문제가 발생 된다.

이 부분은 wowza의 별도 옵션 처리가 가능 할 것으로 보이지만 구글링을 통해 시도 해보았을 때는 적용이 되지 않는 문제가 발생 하였다.

혹시 이 글을 보시는 분 중에 timestamp값을 해결 하셨다면 댓글 부탁 드립니다.

 

또한 와우자에서 ffmpeg으로 실시간 스트림 전송 말고, 바로 쉽게 확인을 할 수 있는 방법이 존재하는데.

wowza에서 제공되는 GoCoder를 활용하면 휴대폰으로 실시간으로 촬영하는 스트림을 와우자를 통해 재생 가능 하다.

 

728x90

'프로그래밍 > ETC' 카테고리의 다른 글

온라인 코딩 테스트 사이트  (0) 2021.04.11
[TeraTerm] Delete key동작 문제 수정.  (0) 2021.02.28
[FFMPEG] ffmpeg option cmd정리  (0) 2020.12.17
728x90
반응형

삼바 설치 및 설정 방법.

1. 삼바 설치.

sudo apt install samba

 

2. 삼바 계정 추가.

sudo smbpasswd -a shlee

이후 설정 패스워드 입력.

삼사 계정 설정

3. 삼바 설정.

cd /etc/samba

cp smb.conf smb.conf.org ( 오리지널 삼바 설정 파일 백업 )

sudo vi smb.conf

위 사진 참고 하여 설정 내용 맨 하단에 추가 입력.

 

4. 삼바 재시작

sudo service smbd restart

 

5. 테스트 진행.

삼바가 설치 되어 있는 아이피 주소. 192.168.10.5

 

윈도우에서 \\192.168.10.5 입력 하면 path 부분으로 연결 완료.

728x90

+ Recent posts