project:personalstreaming
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
project:personalstreaming [2013/02/10 06:44] – [실습해보기] 192.168.0.3 | project:personalstreaming [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 39: | 줄 39: | ||
* 물론 요즘 디지털 카메라들은 어마어마한 화수 수를 자랑하지만, | * 물론 요즘 디지털 카메라들은 어마어마한 화수 수를 자랑하지만, | ||
* 아무리 좋은 디지털 카메라라도 촬영된 영상을 확대하고 확대하면 결국 우측 위 사진처럼 깍두기 현상 - 계단 현상이 일어나기 마련입니다. | * 아무리 좋은 디지털 카메라라도 촬영된 영상을 확대하고 확대하면 결국 우측 위 사진처럼 깍두기 현상 - 계단 현상이 일어나기 마련입니다. | ||
- | * 샘플링은 가역적인 작업입니다. 현실 세계를 샘플링해 사진으로 만들 수 있지만, 그 반대로 사진으로 현실 세계를 만들 수는 없습니다. | + | * 샘플링은 |
* 샘플링된 빛은 보통 사각 모눈과 같이 빛의 3원색인 적, 녹, 청 3색의 강도(intensity)로 표현됩니다. 즉 빛의 세기가 숫자로 표현되는 것입니다. \\ \\ | * 샘플링된 빛은 보통 사각 모눈과 같이 빛의 3원색인 적, 녹, 청 3색의 강도(intensity)로 표현됩니다. 즉 빛의 세기가 숫자로 표현되는 것입니다. \\ \\ | ||
- 보통 이렇게 샘플링된 데이터를 일컬어 ' | - 보통 이렇게 샘플링된 데이터를 일컬어 ' | ||
줄 155: | 줄 155: | ||
첫번째 예는 1 프레임만 추출. 두번째 예는 10프레임을 '' | 첫번째 예는 1 프레임만 추출. 두번째 예는 10프레임을 '' | ||
+ | |||
+ | == 영상 파일의 일부분만을 잘라냄 == | ||
+ | ffmpeg -ss < | ||
+ | |||
+ | * 시작시간: | ||
+ | * 재생시간: | ||
+ | |||
+ | |||
== 기타 == | == 기타 == | ||
줄 509: | 줄 517: | ||
{{: | {{: | ||
- | ' | + | ' |
< | < | ||
lame hi.wav hi.mp3 | lame hi.wav hi.mp3 | ||
줄 515: | 줄 523: | ||
lame lo.wav lo.mp3 | lame lo.wav lo.mp3 | ||
</ | </ | ||
- | 그다음 ffmpeg을 이용해 영상과 소리를 합쳐 각 10초의 재생 시간을 가진 동영상으로 만들어냅니다. 실제 서비스에 사용될 동영상은 비트레이트 | + | 그다음 ffmpeg을 이용해 영상과 소리를 합쳐 각 10초의 재생 시간을 가진 동영상으로 만들어냅니다. 실제 서비스에 사용될 동영상은 비트레이트 |
< | < | ||
ffmpeg -loop 1 -i hi.jpg -i hi.wav -acodec aac -ac 2 -strict experimental -ab 40k -vcodec libx264 -preset slow -profile:v baseline -level 31 -b:v 600k -f mpegts -threads 0 -y -t 10 hi.ts | ffmpeg -loop 1 -i hi.jpg -i hi.wav -acodec aac -ac 2 -strict experimental -ab 40k -vcodec libx264 -preset slow -profile:v baseline -level 31 -b:v 600k -f mpegts -threads 0 -y -t 10 hi.ts | ||
줄 524: | 줄 531: | ||
ffmpeg -loop 1 -i lo.jpg -i lo.wav -acodec aac -ac 2 -strict experimental -ab 40k -vcodec libx264 -preset slow -profile:v baseline -level 31 -b:v 110k -f mpegts -threads 0 -y -t 10 lo.ts | ffmpeg -loop 1 -i lo.jpg -i lo.wav -acodec aac -ac 2 -strict experimental -ab 40k -vcodec libx264 -preset slow -profile:v baseline -level 31 -b:v 110k -f mpegts -threads 0 -y -t 10 lo.ts | ||
</ | </ | ||
- | 각 파일을 모두 5개씩 사본을 만들어 H, M, L이 각각 1분간 재생되도록 만들었습니다. 그리고 파일의 이름은 알맞게 {hi, mi, lo}_{0-5}.ts로 변경했습니다. | + | 각 파일을 모두 5개씩 사본을 만들어 H, M, L이 각각 1분간 재생되도록 만들었습니다. 그리고 파일의 이름은 알맞게 {hi, mi, lo}_{0-5}.ts로 변경했습니다. |
- | + | 이제 플레이 리스트를 만들어야 합니다. | |
- | 이제 플레이 리스트를 만들어야 합니다. | + | |
< | < | ||
#EXTM3U | #EXTM3U | ||
줄 553: | 줄 559: | ||
</ | </ | ||
- | 'lo' 부분은 적절히 mi, hi로 변경하여 | + | 'hi' 부분은 적절히 mi, lo로 변경하여 |
< | < | ||
#EXTM3U | #EXTM3U | ||
줄 567: | 줄 573: | ||
</ | </ | ||
- | 파일들을 서버에 위치시키고, | + | 파일들을 서버에 위치시키고, |
- | 제가 직접 아이패드로 테스트한 결과를 비디오로 촬영하여 YouTube에 업로드 하였습니다. [[http:// | + | 제가 직접 아이패드로 테스트한 결과를 비디오로 촬영하여 YouTube에 업로드 하였습니다. [[http:// |
- | + | ||
- | 아래는 작업한 파일들을 zip 파일로 압축한 것입니다. | + | |
+ | 아래는 작업한 파일들을 zip 파일로 압축한 것입니다. \\ | ||
{{: | {{: | ||
줄 580: | 줄 585: | ||
지금까지 HTTP Live Streaming에 대해 소개하고 VLC media player를 이용해 동영상 파일을 트랜스코딩하여 네트워크를 통해 전송하는 예를 들어 보았습니다. 이 기술은 사실 웹과 음성, 그리고 영상 데이터까지 처리해야 하므로 그 기반은 매우 다채롭고 복잡합니다. 문서는 개론적인 사항들에 대해서만 간결히 소개하는 정도로 그칩니다. 이 이후의 더욱 자세한 사항은 영상 처리 및 압축 기술에 대한 이해를 필요로 할 것입니다. 서버 운영에 대한 지식도 필요하겠죠. 쉽지 않습니다. ;-) | 지금까지 HTTP Live Streaming에 대해 소개하고 VLC media player를 이용해 동영상 파일을 트랜스코딩하여 네트워크를 통해 전송하는 예를 들어 보았습니다. 이 기술은 사실 웹과 음성, 그리고 영상 데이터까지 처리해야 하므로 그 기반은 매우 다채롭고 복잡합니다. 문서는 개론적인 사항들에 대해서만 간결히 소개하는 정도로 그칩니다. 이 이후의 더욱 자세한 사항은 영상 처리 및 압축 기술에 대한 이해를 필요로 할 것입니다. 서버 운영에 대한 지식도 필요하겠죠. 쉽지 않습니다. ;-) | ||
- | 한편 예제를 통해 스트리밍이 | + | 한편 예제를 통해 |
+ | |||
+ | 문서를 통해 스트리밍의 개념과 단순한 동작은 확인하였지만, | ||
===== 부록: 참조 링크 ===== | ===== 부록: 참조 링크 ===== |
project/personalstreaming.1360478678.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)