'스트리밍'에 해당되는 글 3건

  1. 2021.02.12 Software | 티스토리에 Youtube 동영상을 삽입해 보자
  2. 2020.07.25 Wowza | AWS 에 Wowza 설치해 보기
  3. 2017.09.14 Software | FFmpeg 를 사용하여 동영상을 회전시켜 보자

Software | 티스토리에 Youtube 동영상을 삽입해 보자

|

이미 티스토리에 "새 에디터" 만 사용할 수 있게 되어, 본 글은 조금 의미가 퇴색했으나, 기록으로 남겨 봅니다.

 

 

 

1. 티스토리의 동영상

 

원래 DAUM 소속의 티스토리 시절에는, 편집/글쓰기에서 동영상을 올릴 수 있었습니다.

슬슬 Kakao 소속으로 전환되면서, 어느 사이에 동영상 업로드 기능이 빠지더군요.

 

동영상을 올리고 싶으면 "새 에디터" 를 사용하라 유도하고 있습니다.

 

 

문제는 이 "새 에디터" 가 그지같다는 것에 있습니다.

외부컨텐츠도 만들 수 없고, 지금까지 잘 사용했던 add-on 들 - 특히 SyntexHighlighter 를 사용할 수 없게 됩니다.

 

* Software | TISTORY 에서 소스코드 보이기

https://chocoball.tistory.com/entry/SoftwareTISTORYshowSourceCode

 

심각하게 블로그를 옮길까 고민하고 있습니다.

 

 

 

2. YouTube

 

새 에디터에 적응해 보려 두 개의 글을 써 봤으나 포기. 지금 버전은 그양 베타버전 쓰레기 일 뿐.

그러나 오리지날 에디터로는 "동영상" 버튼 자체가 사라졌으니 다른 방법을 이용해야 합니다.

 

 

원래 YouTube 를 사용하지 않으려 했으나, Kakao 블로그 안에서 동영상 업로드라는 것을 깨끗히 포기하고, YouTube 로 가기로 합니다.

결국 Google ID 를 가지고 YouTube 를 시작하게 되네요.

 

모든 시스템 이용기 Google 이라는 것에 살짝 거부감이 들었으나, 1분만에 사용법을 익힐 수 있게 쉽게 되어 있네요.

Channel 이 개설 되면, 동영상 업로드도 할 수 있고, YouTube Studio 를 통해서 동영상 배포 등의 관리를 할 수 있습니다.

 

 

내 Channel 에서 "Upload videos" 를 클릭합니다.

 

 

그러면 Drag & Drop 으로 동영상 끌어다 올릴 수도 있고, 파일 선택해서 올릴 수 있습니다.

 

 

 

 

3. 동영상 LINK 따기

 

동영상 upload 후, 내 Channel 에 가면, 업로드 한 동영상이 보입니다.

 

 

거기에서 "SHARE" 를 클릭.

 

 

Share 의 종류가 여러가지 있지만, YouTube 의 목적이 Blog 에 동영상을 집어 넣기 위한 것이므로, "Embed" 를 선택.

Embed Video 의 iframe 부분을 모조리 copy 합니다.

 

 

 

 

4. 티스토리에 YouTube 동영상 삽입하기

 

복사한 iframe 정보를 오리지널 에디터에서 "외부컨텐츠" 정보로 사용합니다.

 

 

html (embed, object 소스입력) 을 선택하고, 복사한 iframe 정보를 붙여넣기 합니다.

 

 

확인을 누르면 아래와 같이 동영상이 포팅 되었습니다.

 

 

이제 Tistory 오리지널 에디터에서 너튜브 동영상을 embed 해 보아요.

다른 블로그 플렛폼에서도 비슷한 방법으로 YouTube 동영상을 끌어올 수 있을껍니다.

 

 

 

FIN

 

Kakao 도 사용하고 있을 Linux / UNIX 탄생의 정신을 상기하고, 기술의 공유와 사용함의 제한을 두지 않았으면 좋겠습니다.

 

And

Wowza | AWS 에 Wowza 설치해 보기

|

오랜만에 Wowza 를 linux 환경에 설치해 봤습니다.





1. AWS Marketplace


클라우드 중에서 요즘 대세인 AWS 의 instance 에 설치해 봅니다.


그냥 EC2 instance 에 linux 를 깔고, Wowza 파일 받아서 설치할 수도 있으나, AWS 서비스에서 제공하는 3rd party 솔루션 제공 방법인 Marketplace 를 사용해 봅니다. 돈은 조금 더 들지만, 편합니다.



아무래도 Wowza 는 License 지불을 해야 하므로, Marketplace 에서는 "구독" 으로 취급됩니다.

한달에 기본 사용료 15 USD + EC2 시간당 사용으로 과금됩니다.



License 사용료가 한달에 15 USD 인 셈이군요.





2. Wowza 시작


Marketplace 를 통해 설치한 Wowza 인스턴스는 5분정도 있으면 생성이 됩니다.

맙소사... 너무 편해. 물리적인 서버도 필요 없고, OS 설치도 없었을 뿐더러, Wowza 어플리케이션 설치도 하지 않았지만, 생겼습니다.



EC2 Instance URL 로 접속하면, 위의 시작 페이지가 뜹니다. Next 눌러 줍니다.



처음 시작했으니, admin 의 이름과 암호를 넣으라고 합니다.

ID 는 wowza 이고, 비번은 instance ID 입니다.



EC2 instance 관리 화면에서 Wowza 서버의 Instance ID 를 카피해, 암호로 넣으면 됩니다.



Live 를 사용할 것이라면 게시지점을 넣으라고 합니다. URI 정보입니다만, 나중에 설정하면 되니, 과감하게 패스.



10여분만에 Wowza 한대 추가요~.



응?!!! 4.8.5 버전으로 업데이트가 공개되었다고 뜨네요. 지금 설치된 버전은 4.8.0.




3. Update 파일 다운로드


우선 OS 를 최신으로 update


$ sudo yum upgrade




저 위의 화면에 떠 있는 "Download" 를 누르면 될 것 같은데, 궂이 힘들게 해 봅니다.

Wowza 웹사이트에 가서, 회원 가입 > My Downloads 에서 4.8.5 버전 다운로드.



개인 PC 에 파일을 다운로드 받았으면, FTP 를 이용하든 해서 서버에 파일을 다운로드 받아 놓습니다.

저는 그냥 편하게 S3 사용 했습니다. (점점 AWS 로 대동단결)




4. 설치 파일 구성


먼저, 서비스를 내립니다.


$ sudo service WowzaStreamingEngine stop
$ sudo service WowzaStreamingEngineManager stop




Wowza 가 설치된 하위 directory 중에 updates 폴더 권한을 모두 읽을 수 있게 한 뒤, 다운로드 파일을 updates 에 모두 옮깁니다.


$ unzip WowzaStreamingEngine-Update-4.8.5.zip
$ sudo chmod -R 777 /usr/local/WowzaStreamingEngine-4.8.0/updates/
$ sudo mv * /usr/local/WowzaStreamingEngine-4.8.0/updates/




압축을 풀어서 updates 디렉토리에서 linux 용 명령어를 실행합니다.

최종적으로는 아래와 같은 depth 를 가지게 됩니다.


/usr/local/WowzaStreamingEngine-4.8.0/updates/WowzaStreamingEngine-4.8.5/linux



$ cd /usr/local/WowzaStreamingEngine-4.8.0/
$ cd updates/
$ cd WowzaStreamingEngine-4.8.5/linux/

$ pwd
/usr/local/WowzaStreamingEngine-4.8.0/updates/WowzaStreamingEngine-4.8.5/linux

$ sudo chmod +x *.sh
$ sudo ./update.sh 


오잉?!!!! Java 9 이상이 설치되어야 한다고 하네요. 기본으로 Java 8 이 깔려 있었습니다.



어쩔 수 있나요, Java 9 및 Java 13 도 깔아 줍니다. 자세한 설명은 아래 포스트를 참조해 주세요.


* Java | OpenJDK 업데이트 및 선택 변경

https://chocoball.tistory.com/entry/Java-OpenJDK-update-change




5. update.sh


Java 환경을 만들어 주면, 문제 없이 설치가 시작됩니다. sudo ./update.sh !!!



응 업데이트 하셈.



기존 설정은 backup 으로 옮기고 업데이트가 끝납니다. 요즘은 서버 성능이 좋은지라, 예전 보다 엄청 빨라졌네요.

(거의 10여년 전에 회사 최초로 linux 상에서 Wowza 깔아봤었슴)


다시, 서비스 올려 줍니다.


$ sudo systemctl daemon-reload
$ sudo service WowzaStreamingEngine start
$ sudo service WowzaStreamingEngineManager start






6. 4.8.5


Management UI 에서 버전 확인해 봅니다.



오늘도 알찬 하루였습니다.


FIN


'Cloud' 카테고리의 다른 글

AWS | Lightsail 과 Outline 이용하여 VPN 만들어 보기  (9) 2020.07.26
And

Software | FFmpeg 를 사용하여 동영상을 회전시켜 보자

|

1. Tistory


iPhone 에서 찍은 동영상을 Tistory 에 올리다 보면,

스마트폰을 분명 가로로 눕혀서 찍었는데도 불구하고 세로로 올라가는 경우가 있습니다.


포탈에서 검색해 보면,

여러 상용이나, 무료 소프트웨어에서 "회전" 시켜주는 방법이 소개됩니다.


다만,

상용은 돈을 내야 하고, 무료 소프트웨어더라도 이 "회전" 이 들어가면 유료버전을 사용하라고 뜹니다. (아놔)

"내가 이거 돈들지 않고 고쳐본다" 라는 오기가 생기더군요.




2. FFmpeg


예전 미디어 스트리밍 업무에 관여하고 있을 시,

FFmpeg 라는 command line 어플을 알게 되었습니다.


여러 상용 transcoding / encoding 소프트웨어가 시장에 나와 있지만,

입맛에 맞게 in-house 개발을 하려면 FFmpeg 밖에 답이 없어 보였습니다.


그래, FFmpeg 라면 분명 뭐가 있을꺼야 라는 생각으로 작업을 시작해 봅니다.


일단 아래 link 에서 최신판 FFmpeg 를 다운로드 받습니다.


https://www.ffmpeg.org/download.html



참고로 FFmpeg 는 update 가 잘 되는 편이라,

예전 버전을 가지고 있으면 기능을 원활하게 구현하지 못하거나 더 좋은 방식을 못쓰는 경우가 있습니다.

꼭 최신판을 받으세요.


Windows 라면, directory 를 하나 만들어서 압축을 풀어 놓습니다.


실행 파일은 bin 폴더 밑에 ffmpeg.exe 파일 입니다.

자 시작해 볼까요?


참고로, 원본 파일은 다음과 같이 80MB 의 mov 파일 입니다.
확장자가 MOV 인것은 iPhone 에서 찍은 동영상이라서 그래요.
동일한 H.254 CODEC 인 MP4 도 당연히 가능합니다.





3. 단순한 metadata 수정으로 회전시키기

회전이라는 것은, 동영상의 property 중에서 회전 부분에 들어간 인자로 인하여
Tistory 어플이 그렇게 인식하고 회전시켜버렸을 수도 있습니다.

그러니 회전 관련 metadata 를 날려주면 될 것 같네요.

관련 command 는 다음과 같습니다.
"v:0" 로 지정된 input_filename.mov 에 "rotate=0" 를 넣으라는 이야기 입니다.

동영상 자체가 16:9 비율로 찍혀 있는 (가로) 정보가 있으므로,
회전만 없애주면 되겠지요?


ffmpeg -i input_filename.mov -c copy -metadata:s:v:0 rotate=0 output_filename.mov

실제로 실행시킨 화면 입니다.



"ffmpeg.exe" 가 실행되면서 동영상 파일의 여러 property 를 보여주는데,

"rotate : 90" 로 되어 있는 것을 확인할 수 있습니다.


metadata 만 바꾸어 주는 것이므로, 실행은 바로 끝나고 화일 용량도 거의 같습니다.






4. data 자체를 실제로 회전시키고 re-encoding 하기


부제목 그대로, data 자체를 회전시키면서 재 encoding 하는 방법입니다.

실행 command line 은 다음과 같습니다.

ffmpeg -i input_filename.mov -vf "transpose=2" output_filename.mov


여기서 중요한 key 는 "transpose=X" 입니다.


0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip


원본 소스가 시계방향 90 도로 틀어져 있으므로,

옵션 2를 선택하여 시계 반대방향 90 도로 지정하였습니다.


아래는 실제 실행시킨 화면 입니다.



metadata 단순 수정과는 다르게, 여러 정보가 쏟아져 나옵니다.

이는 실제로 re-encoding 을 통하여 모든 동영상 data 를 다시 구성했기 때문이지요.


80MB 짜리 mov 파일을 랩탑에서 돌리는데, 약 3분정도 소요된것 같습니다.


encoder 도 원본은 H.264 인데,

FFmpeg 를 거치면서 Lavc57 로 변경되었습니다. 아무래도 CODEC license 문제를 피해가기 위함인 듯 하네요.


완료 파일도 20MB 로 줄어들었습니다.




줄어들어서 좋긴 하지만,

인코딩 횟수를 더하면서 동영상 화질의 열화를 가져다 줄 듯 합니다.




5. 결과


* ORIGINAL

Tistory 에 바로 올리면 이렇게, 오른쪽 90도 틀어진 상태로 올라가게 됩니다.




* METADATA 삭제

metadata 만 삭제한 버전입니다.

문제 없이 원래대로 돌아 왔죠?




* RE-ENCODING

"transpose=2" 를 사용하여 re-encoding 시킨 파일 입니다.

잘 되돌려 놓기는 했습니다만, 살~짝 위의 metadata 와 비교시 화질 열화가 있습니다.


다만, 80MB --> 20MB 로 줄이면서 거의 차이가 없는 정도이므로,

시간이 허락한다면 이렇게 해도 문제는 없겠죠? 선택은 사용자가 판단하면 될 듯 해요.





6. 그럼 180 도 회전은?


180도 회전이 필요한 동영상은 "vflip + hflip" 으로 하면 될것 같습니다.


https://ffmpeg.org/ffmpeg-filters.html


다만, 이렇게 하면 화면이 뭉개져 버립니다. 이게 FFmpeg 를 사용하는게 어려운 점인것 같아요.

(Linux 버전에서는 테스트해보지 못했습니다.)


180도 회전을 하고싶은 경우는 아래와 같은 순서로 해야 합니다.


1. rotate=0 를 먹여서 metadata 를 reset 한다. (rotate=180 이 먹지 않는다.)

2. vflip + hflip 을 이용하여 180 도 회전 효과를 낸다.


명령어는 다음과 같이 하면 됩니다.


ffmpeg.exe -i R:\White_LED.MOV -c copy -metadata:s:v:0 rotate=0 R:\out.MOV

ffmpeg.exe -i R:\Out.MOV -vf "vflip,hflip" R:\vhflip.MOV


아래는 처음 원본 source 이고, 그 다음은 "rotate=0 --> vflip + hflip" 한 결과 입니다.

우선 "rotate=0" 입니다. 상하가 그대로죠?



아래는 최종적으로 "vflip + hflip" 한 결과 입니다.



잘 되죠? :-)


화질 저하는 거의 느끼지 못할만큼 있지만, 용량은 re-encoding 을 통하여 1/4 이상 줄었습니다.






7. Reference


아래 link 는 FFmpeg 을 이용한 회전 사용법에 대해 알아본 stack overflow 입니다.


https://stackoverflow.com/questions/20664460/remove-rotate-metadata-from-mp4

https://stackoverflow.com/questions/3937387/rotating-videos-with-ffmpeg/9570992#9570992

https://stackoverflow.com/questions/15335073/can-i-set-rotation-field-for-a-video-stream-with-ffmpeg/15336581#15336581




FIN

후훗, 이제 걱정 없구만.

다 덤벼~!

And
prev | 1 | next