ffmpeg -i video.webm -i audio.opus -c:v copy -c:a aac -strict experimental output.mp4
it should look something like this.
ffmpeg -i audio.opus -i vid.webm -c:v copy -c:a opus -strict experimental output6.webm
風 讓滿地落葉揚起 我感覺身上的毛衣 快抵擋不住涼意
Fēng ràng mǎn dì luòyè yáng qǐ wǒ gǎnjué shēnshang de máoyī kuài dǐdǎng bù zhù liángyì
眼睛 掃過陳舊的街景 突然記起這熟悉 嘴裡哼出的旋律
yǎnjīng sǎoguò chénjiù de jiējǐng túrán jì qǐ zhè shúxī zuǐ lǐ hēng chū de xuánlǜ 曾經刻意 將妳的位置讓人代替 卻再沒有人能真正到達我心底
céngjīng kèyì jiāng nǎi de wèizhì ràng rén dàitì què zài méiyǒu rén néng zhēnzhèng dàodá wǒ xīndǐ 妳早已寄生我心裡 不吃不喝不睡不呼吸
nǎi zǎoyǐ jìshēng wǒ xīnlǐ bù chī bù hē bù shuì bù hūxī 不會因為我們感傷的結局 放縱自己 恣意狂亂我的身體
bù huì yīnwèi wǒmen gǎnshāng de jiéjú fàngzòng zìjǐ zìyì kuáng luàn wǒ de shēntǐ 妳早已寄生我心裡 附著心中無形的胎記
nǎi zǎoyǐ jìshēng wǒ xīnlǐ fùzhuó xīnzhōng wúxíng de tāijì 直到沒人能讓我的愛 繼續
zhídào méi rén néng ràng wǒ de ài jìxù
노래 유튜브 링크 (0) | 2018.04.27 |
---|---|
The Way Love's Meant To Be - Regine Velasquez (0) | 2018.01.15 |
Beyond - 因爲有你有我 (0) | 2012.02.11 |
Beyond - 因爲有你有我 (0) | 2011.04.13 |
- 추가사항 : UDP 커넥션의 경우에는 지속적인 핑퐁 메세지가 없으면 연결이 끊어질수 있기 때문에 일정간격으로 연락을 해 주어야 한다. NAT의 종류에 따라서 되는것도 있고 안되는것도 있다고 한다..(성공 확률 분포 등에 대한 자료는 PDF문서 참조)
일단 기본적인 기술은 여기까지 이해하고 나머지 추가적인 기술과 내용들은 아래의 주소에서 더 확인이 가능하다.
(사실 이거 이해를 하려고 꽤나 머리를 싸맸다. 아직 확실한지는 잘 모르겠지만서도 -_-)
출처: http://devdbref.tistory.com/14 [PHP 및 웹 관련]
---------------------------------------------------------------------------
오늘은 사설 IP 주소를 가지는 두 단말 간에 P2P 통신이 가능하도록 하는 기술(NAT Traversal이라 부름)에 대해 소개 해 드리겠습니다.
RFC 5128(State of P2P Communication across NATs - Informational)에서 설명하고 있는 NAT Traversal 기술은 크게 3가지입니다.
이번 시간에는 Relaying과 Connection Reversal에 대해서 알아보고 다음 시간에 UDP Hole Punching에 대해서 설명 드리도록 하겠습니다.
P2P (NAT Traversal) 입장에서 가장 곤혹스러운 NAT Behavior가 Address and Port-Dependent Mapping(이하 APDM) & Address and Port-Dependent Filtering(이하 APDF) 입니다. 오늘 소개해 드릴 Relaying과 Connection Reversal 모두 적용의 한계(문제점)가 있기는 하지만 위 방식의 NAT Behavior에서도 NAT Traversal이 가능한 기술입니다.
1. Relaying
■ 개념
■ 절차
1. | Host A와 B는 각각 Server S로 TCP 혹은 UDP 연결 메시지(Registry Session)를 보냅니다. | ||
2. |
이 메시지들은 NAT A/B를 통과해 Server S로 도달하여 Host A와 Server S, Host B와 Server S간에 TCP 혹은 UDP 연결이 이루어집니다. 또한 NAT A/B에는 다음과 같이 Binding Entry와 Filtering Entry가 생성됩니다.
| ||
3. | 이제 Server S는 Host A/B의 Public IP/Port 정보(NAT에 의해 변환된 정보)를 알수 있게 됩니다. | ||
4. | Host A는 2번 과정에서 생성된 연결을 통해 Server S로 P2P 데이터 패킷을 보내는데, 이 때 해당 패킷의 Payload에는 목적지 주소 6.2.2.2가 포함되며 (참고: Peer 목적지 주소 6.2.2.2를 알아내는 방법에 대해서는 표준에 정의되어 있지 않음), | ||
5. | 이 패킷은 NAT A를 통과하여 Server S가 수신합니다. | ||
6. | Server S는 수신 패킷의 Payload를 통해 목적지 주소를 알아낸 후, 역시 2번 과정에서 생성된 연결을 통해 Host B로 P2P 데이터 패킷을 송신(릴레이)하며 이 때 Host B가 패킷을 수신 할 수 있도록 다음과 같이 패킷 정보를 변경합니다.
| ||
7. | NAT B는 다음과 같은 과정을 거쳐 수신 패킷을 Host B로 전달합니다.
|
■ 장점
■ 단점
■ 요약
2. Connection Reversal
■ 개념
■ 절차
1. | Host A는 Server S로 TCP 혹은 UDP 연결 메시지(Registry Session)를 보냅니다. | ||
2. |
이 메시지는 NAT A를 통과하여 Server S로 도달하여 Host A와 Server S간에 TCP 혹은 UDP 연결이 됩니다. 또한 NAT A에는 다음과 같이 Binding Entry 및 Filtering Entry가 생성됩니다.
| ||
3. | 이제 Server S는 Host A의 Public IP/Port 정보(NAT에 의해 변환된 정보)를 알수 있게 됩니다. | ||
4. | Host A와 통신을 하려는 Host B는 Server S로 연결 요청 메시지(Reverse Connection Request)를 보내고, 이 메시지에는 자신의 주소/포트 정보(200.1.1.1:2000)와 연결을 원하는 목적지(Host A) 정보가 포함됩니다 (참고: Peer 목적지 주소 5.1.1.1을 알아내는 방법에 대해서는 표준에 정의되어 있지 않음). | ||
5. | 연경 요청 메시지를 수신한 Server S는 2번에서 생성한 TCP 혹은 UDP 연결을 통해 이 메시지를 Host A로 전송하는데, 이 때 패킷 정보는 다음과 같이 변경됩니다.
| ||
6. | NAT A는 다음과 같은 과정을 거쳐 수신 패킷을 Host A로 전달합니다.
| ||
7. | 이제 Host A는 Host B로 연결 요청(Connection Request)을 합니다. 이 때 목적지 정보(200.1.1.1:2000)는 6번 메시지의 Payload에 포함된 값을 이용합니다. | ||
8. | 이 메시지는 NAT A를 통과하여 Host B로 전달이 되고, 이를 통해 Host A와 Host B간에 TCP 혹은 UDP 연결이 생성됩니다. 또한 그 과정 중에 NAT A에는 아래와 같이 Binding Entry 및 Filtering Entry가 생성 됩니다.
| ||
9. | 이제 Host B는 이 연결을 통해 Host A로 P2P 데이터 패킷을 보내면, | ||
10. | NAT A는 다음과 같은 과정을 거쳐 수신 패킷을 Host A로 전달합니다.
|
■ 장점
■ 단점
■ 요약
-----------------------------------------------
----------------------------------------------------------------
## mp3 파일 시간 cut
ffmpeg -ss 0 -t 180 -i aa.mp3 -acodec copy bbb.mp3
ffmpeg -ss start_sec -t duration_sec -i input_file -acode copy output_file
E:\Program\windows_client\ffmpeg.exe -i "movie.mp4" -i "sound.aac" -c:v copy -c:a copy output.mp4
crop
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" -c:a copy output.mp4
A few notes:
The filter will automatically center the crop if x and y are omitted, so x defaults to (iw-w)/2, and y to (ih-h)/2
--------------------------------------------------
For some qualities Youtube provides videos only in WebM format. WebM could be converted in MP4 with the following ffmpeg command
ffmpeg -i video.webm -i audio.m4a -c:v libx264 -c:a copy out.mp4-----------------------------------------
If your output container can handle (almost) any codec – like MKV – then you can simply copy both audio and video streams:
ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv
ffmpeg -i video.webm -i audio.opus -c:v copy -c:a aac -strict experimental output.mp4
it should look something like this.
ffmpeg -i audio.opus -i vid.webm -c:v copy -c:a opus -strict experimental output6.webm
-----------------------------------------------------------------
[동영상을 애니메이션gif로 변환]
-ffmpeg -t <길이 초> -ss <시작지점-00:00:10> -i <원본동영상> -pix_fmt rgb24 <저장할파일>
--> 예> ffmpeg -t 5 -ss 00:00:10 -i sample.avi -pix_fmt rgb24 sample.gif
------> sample.avi에서 10초 지점부터 5초간을 sample.gif로 저장.
[동영상을 이미지(jpg)로 연속캡쳐]
ffmpeg -ss 00:00:01 -t 00:00:02 -i fgong.avi fgong_%3d.jpg
--> fgong.avi의 1초 지점부터 2초간 캡처해서 fgong_1, fgong_2 형식으로 저장함.
[연속된 이미지를 동영상으로]
ffmpeg -f image2 -i %04d.jpg -vcodec libx264 movie.mp4
0000.jpg, 0001.jpg 이런 식으로 네 자리 연속된 숫자의 파일들을 movie.mp4 로 만듭니다.
-f : 입력 파일의 포맷을 의미하며 image2 는 jpg 파일을 의미합니다.
-i : 입력 파일
-vcodec : 출력 파일의 압축 코덱을 의미하며 H264가 대게 가장 무난하게 좋습니다.
[mp4 -> avi]
ffmpeg -i xx.mp4 -acodec copy -vcodec copy xx.avi
[mp4 -> flv]
ffmpeg -i xxx.mp4 -c copy xxx.flv
[동영상 크롭(Crop)]
ffmpeg -i 원본영상.mp4 -filter:v "crop=영상가로:영상세로:X:Y" 결과물.mp4
(원본영상.mp4 를 X,Y 지점부투 영상가로x영상세로 영역만큼만 뽑아냄)
[두개의 영상을 한화면에 나란히(Side by Side)]
ffmpeg -i 영상1.mp4 -vf "[in] pad=2*iw:ih [left]; movie=영상2.mp4 [right]; [left][right] overlay=main_w/2:0 [out]" 결과물.mp4
(화면크기가 같은 2개의 동영상 영상1.mp4, 영상2.mp4 를 나란히 좌우로 붙여 결과물.mp4로)
[동영상 일정구간 자르기]
ffmpeg -i 동영상.avi -ss 600 -t 120 결과물.avi
(동영상.avi 의 600초 지점부터 120초간 자르고 결과물.avi로 저장)
[동영상 프레임 늘리기(슬로우/패스트 비디오 만들기)]
ffmpeg -i ~baekrokdam.mov -vf "setpts=(1/4)*PTS" -an baekrokdam4x.mov
setpts=(1/4)*PTS의 1/4를 원하는 배속으로 수정.
오디오는 재생 속도가 변경되지 않으므로 -an 옵션으로 오디오 제거.
[화면회전]
ffmpeg -i in.mov -vf "transpose=1" out.mov
0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip
[자막파일 smi -> srt 변환]
ffmpeg -i 자막파일.smi 자막파일.srt
============================================================
메인옵션
-L : 라이센스 표시
-h : 헬프표시
-formats : 현재 사용할 수 있는 포맷, 코덱, 프로토콜을 표시
-f fmt : 포맷을 지정 (fmt의 부분에 -formats 그리고 조사한 포맷명이 들어간다)
-img img_fmt : 화상의 포맷을 지정 (img_fmt의 부분에 -formats 그리고 조사한 포맷명이 들어간다)
-i filename : 입력파일명
-y : 동일 파일 존재시 덮어쓰기
-t duration : 완성되는 파일의 시간을 지정한다 (duration의 부분에 0을 넣으면 10초 부분까지 기록)
-ss : 변환시작할 시간
영상옵션
-s : 사이즈 (가로x세로)
-sameq : 원본과 동일화질
-qscale : 0 ~ 255 (낮을수록 고화질)
-r : frame rate (Hz value, fraction or abbreviation)
-aspect : 비율 (4:3, 16:9 or 1.3333, 1.7777)
-b : bitrate (ex 512k)
내 pc 안에 namesapce 폴더 삭제 (0) | 2020.09.02 |
---|---|
windows 10 시작프로그램 (0) | 2018.10.24 |
Windows 7 command (0) | 2017.11.09 |
SSLv3, TLSv1 (0) | 2017.09.25 |
windows 10 에서 wmencoder64 설치 (0) | 2017.01.01 |