ubuntu 12.04
$ sudo apt-get install dkms
$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
$ sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian precise contrib" >> /etc/apt/sources.list.d/virtualbox.list'
$ sudo apt-get update
$ sudo apt-get install virtualbox-5.0
$ adduser $USER vboxusers
$ virtualbox
--------------------------------------------------------------------------------
# virtualbox 실행시 VERR_SUPLIB_OWNER_NOT_ROOT 에러가 나면
/usr/lib/virtualbox 까지의 경로중 root 권한이 아닌 디렉토리가 있기
때문이므로 권한을 수정한다.
$ sudo chmod root:root "루트 권한이 아닌 경로"
--------------------------------------------------------------------------------
참고
https://www.virtualbox.org/wiki/Linux_Downloads
http://www.howopensource.com/2013/04/install-virtualbox-ubuntu-ppa/
https://forums.virtualbox.org/viewtopic.php?f=7&t=39179
http://askubuntu.com/questions/140081/virtualbox-doesnt-recognize-usb
http://blog.ruecker.fi/2013/10/06/adventures-in-bluetooth-4-0-part-i/
https://forums.virtualbox.org/viewtopic.php?f=7&t=67761
2015년 12월 8일 화요일
2015년 11월 14일 토요일
2015년 11월 10일 화요일
gdbserver
gdbserver 실행 (Target)
# gdbserver --attach :5039 <PID> Attached; pid = 7148 Listening on port 5039 또는 # gdbserver :5039 <BINARY PATH> Process xxx created; pid = 6232 Listening on port 5039 |
$ gdb-multiarch
(gdb)
set
arch arm
(gdb)
file
<BINARY PATH>
(gdb) target remote [gdbserver ip]:5039
참고
https://sourceware.org/gdb/wiki/BuildingCrossGDBandGDBserver
gdb
- 심볼파일 로드
(gdb) symbol-file
- 사용 가능한 명령어 리스트
(gdb) 명령 <tab><tab>
- 콜스택
(gdb) i s
- 레지스터 보기
(gdb) i r pc
(gdb) p/x $pc
(gdb) set $sp += 4
- 변수 값 보기
(gdb) x 변수
- 포인터 대상 출력
(gdb) p *(구조체 또는 클래스*)어드레스
(gdb) p *this
- 구조체 또는 클래스의 크기 구하기
- 메모리맵
$ cat /proc/<pid>/maps
- print 출력 길이 제한
- print format
(gdb) set print pretty on
- print 옵션
(gdb) set print 항목 값
- 배열 P 에서 N개의 요소를 출력
(gdb) p P@N
- myVector 의 배열 주소
myVector._M_impl._M_start
- 로칼 변수
- 타입 보기
함수 정의 보기
(gdb) i fu
변수 보기
(gdb) i va
스택 프레임 정보
(gdb) i f
(gdb) fr [번호]
줄 정보
(gdb) i li
소스 리스트 보기
(gdb) i sources
공유라이브러리 보기
(gdb) i sh
시그널 핸들 상태
(gdb) i h
실행 옵션
빌드 옵션 확인
-configuration
-nx 설정파일 실행 안 함
부트시퀀스
-interpreter 옵션 처리
.
- 시스템 설정 파일 실행(/etc/gdb/gdbinit)
- 사용자 설정 파일 실행(~/.gdbinit)
- -iex 및 -ix 옵션을 순서대로 실행
- -ex 와 -x 를 제외한나머지 옵션 실행
- 현재 디렉토리의 설정 파일 실행(./.gdbinit) (set auto-load local-gdbinit on 필요)
- auto-load
Disable auto-load $ gdb -iex "set auto-load python-scripts off" myprogram
- -ex 및 -x 옵션을 순서대로 처리
- command history 로드
참고https://sourceware.org/gdb/onlinedocs/gdb/index.html
https://sourceware.org/gdb/wiki/BuildingCrossGDBandGDBserver
arm 레지스터 이름
r9, sb, static base r10, sl, stack limit
r11, fp, frame pointer
r12, ip, intra-procedure call scratch register
r13, sp, stack pointer
r14, lr, link register
r15, pc, program counter
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0040d/ch06s02s01.html
r11, fp, frame pointer
r12, ip, intra-procedure call scratch register
r13, sp, stack pointer
r14, lr, link register
r15, pc, program counter
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0040d/ch06s02s01.html
2015년 10월 29일 목요일
~/.ssh/config
# Command line
$ ssh <유저명>
@HostName
-p
<포트 번호>
-i
<비밀키의 풀패스>
==
# ~/.ssh/config
Host <별명>
HostName <IP Address or Host name>
Port <포트 번호>
User <유저명>
IdentityFile <비밀키의 풀패스>
참고
https://dobest.io/ssh-without-password/
Install libnfc on ubuntu 12.04
Ubuntu 12.04 LTS
$ sudo apt-get install dh-autoreconf libusb-0.1-4 libusb-dev
http://forums.nfc-tools.org/topic/668/solved-scl3711-interface-0-claimed-by-pn533-nfclist-sets-conf/
$ sudo apt-get install dh-autoreconf libusb-0.1-4 libusb-dev
$ git clone https://github.com/nfc-tools/libnfc.git $ cd libnfc $ git checkout libnfc-1.7.1 $ git clean -d -f -x $ git remote|grep -q anonscm||git remote add anonscm git://anonscm.debian.org/collab-maint/libnfc.git $ git fetch anonscm $ git checkout remotes/anonscm/master debian $ git reset $ dpkg-buildpackage -uc -us -b
$ sudo dpkg -i ../libnfc*.deb
Problem
--------------------------------------------------------------------------------
$ sudo nfc-list nfc-list uses libnfc libnfc-1.7.1-12-gb978c45 error libnfc.driver.pn53x_usb Unable to set USB configuration (Device or resource busy) No NFC device found.
$ dmesg | tail
[1400911.505643] usb 2-1.4: new full-speed USB device number 7 using ehci-pci [1400911.637956] usb 2-1.4: New USB device found, idVendor=04e6, idProduct=5591 [1400911.637961] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [1400911.637964] usb 2-1.4: Product: SCL3711-NFC&RW [1400911.637967] usb 2-1.4: Manufacturer: SCM Micro [1400911.641239] pn533 2-1.4:1.0: NFC: NXP PN533 firmware ver 2.7 now attached [1401061.395200] usb 2-1.4: usbfs: interface 0 claimed by pn533 while 'nfc-list' sets config #1
--------------------------------------------------------------------------------Solution--------------------------------------------------------------------------------
restart or unplug the device, unload modules (sudo modprobe -r pn533 nfc), then re-plug the device.
$ nfc-list nfc-list uses libnfc libnfc-1.7.1-12-gb978c45 error libnfc.driver.pn53x_usb Unable to set USB configuration (Operation not permitted) No NFC device found. $ sudo nfc-list nfc-list uses libnfc libnfc-1.7.1-12-gb978c45 NFC device: SCM Micro / SCL3711-NFC&RW opened
--------------------------------------------------------------------------------
참고http://nfc-tools.org/index.php?title=Libnfc#Debian_.2F_Ubuntu
http://forums.nfc-tools.org/topic/668/solved-scl3711-interface-0-claimed-by-pn533-nfclist-sets-conf/
2015년 10월 20일 화요일
thread id
NAME
pthread_self - 호출하는 쓰레드의 ID 획득
SYNOPSIS
#include <pthread.h>
pthread_t pthread_self(void);
컴파일 및 링크시 -pthread 옵션을 추가해야 함.
DESCRIPTION
The pthread_self() function returns the ID of the calling thread. This is the same value that is returned in
*thread in the pthread_create(3) call that created this thread.
RETURN VALUE
이 함수는 항상 성공하며, 호출하는 쓰레드의 ID를 반환한다.
pthread_self - 호출하는 쓰레드의 ID 획득
SYNOPSIS
#include <pthread.h>
pthread_t pthread_self(void);
컴파일 및 링크시 -pthread 옵션을 추가해야 함.
DESCRIPTION
The pthread_self() function returns the ID of the calling thread. This is the same value that is returned in
*thread in the pthread_create(3) call that created this thread.
RETURN VALUE
이 함수는 항상 성공하며, 호출하는 쓰레드의 ID를 반환한다.
ping: socket: Permission denied
ping 을 하면 권한이 없다고 나오는 경우가 있다.
$ ping localhost
socket: Permission denied
aid_inet 그룹에 속해야 소켓을 사용할 수 있다.
# groupadd -g 3003 aid_inet # /etc/group 에 aid_inet 그룹이 없으면 추가
# usermod -a -G aid_inet 사용자
2015년 10월 1일 목요일
uTorrent 설정
v3.4.5 (build 41162)
* Portable 실행
다운 받는 uTorrent.exe 파일이 있는 디렉토리에 빈 settings.dat 파일 생성
* 광고 없애기
설정 > 고급 설정 > 설정 변경(아래 참고) > 확인 > 재시작
고급 설정 변경
----------------------------------------
1. 필터 [offer_enabled]
offers.left_rail_offer_enabled: false
offers.sponsored_offer_enabled: false
2. 필터 [upsell]
gui.show_plus_upsell: false
----------------------------------------
# 재시작해도 광고창이 없어지지 않으면 트레이로 이동 된게 아닌지 확인.
* Portable 실행
다운 받는 uTorrent.exe 파일이 있는 디렉토리에 빈 settings.dat 파일 생성
* 광고 없애기
설정 > 고급 설정 > 설정 변경(아래 참고) > 확인 > 재시작
고급 설정 변경
----------------------------------------
1. 필터 [offer_enabled]
offers.left_rail_offer_enabled: false
offers.sponsored_offer_enabled: false
2. 필터 [upsell]
gui.show_plus_upsell: false
----------------------------------------
# 재시작해도 광고창이 없어지지 않으면 트레이로 이동 된게 아닌지 확인.
2015년 9월 15일 화요일
2015년 9월 13일 일요일
wget 으로 로그인이 필요한 파일 다운로드
wget --user=username --ask-password http://pass/to/the/file
또는
wget --user=username --password=password http://pass/to/the/file
2015년 8월 15일 토요일
2015년 7월 2일 목요일
2015년 7월 1일 수요일
Linux 에서 사용자 로그인 정지
Linux 에서 seminar 라는 사용자를 로그인 못하도록 하려면
다음과 같이 shadow 파일의 패스워드 항목(두 번째)을 * 이나 ! 으로 설정한다.
로그인 정지
$ sudo grep seminar /etc/shadow
seminar:*:16618:0:99999:7:::
복구
$ sudo passwd seminar
Enter new UNIX password: 새 패스워드 입력
Retype new UNIX password: 확인 입력
* 로그인이 정지된 경우에도 su 명령으로는 로그인이 가능하다.
다음과 같이 shadow 파일의 패스워드 항목(두 번째)을 * 이나 ! 으로 설정한다.
로그인 정지
$ sudo grep seminar /etc/shadow
seminar:*:16618:0:99999:7:::
복구
$ sudo passwd seminar
Enter new UNIX password: 새 패스워드 입력
Retype new UNIX password: 확인 입력
* 로그인이 정지된 경우에도 su 명령으로는 로그인이 가능하다.
2015년 6월 24일 수요일
conemu + git bash 한글 사용
git bash 를 쓰다보니 conemu 라는 터미널 프로그램이 여러모로 편리하다.
(cygwin 과도 쓸 수 있는데 개인적으로는 cygwin 에는 teraterm 이 더 편하다.)
conemu 에서 git bash 를 사용할 때 한글과 관련된 문제는 다음과 같이 해결한다.
# bash 표시
$ cat ~/.bashrc
alias ls='ls --color=auto --show-control-chars'
# bash 입력
$ cat ~/.inputrc
# git diff, vi 표시
$ cat ~/.vimrc
set enc=utf8 fenc=utf8 tenc=cp949
# vi 에서 한글 간격 오류
Settings (Win + alt + p) > Main > Main console font > [] Monospace 체크 해제
(cygwin 과도 쓸 수 있는데 개인적으로는 cygwin 에는 teraterm 이 더 편하다.)
conemu 에서 git bash 를 사용할 때 한글과 관련된 문제는 다음과 같이 해결한다.
# bash 표시
$ cat ~/.bashrc
alias ls='ls --color=auto --show-control-chars'
# bash 입력
$ cat ~/.inputrc
set output-meta on
set convert-meta off
# git diff, vi 표시
set enc=utf8 fenc=utf8 tenc=cp949
# vi 에서 한글 간격 오류
Settings (Win + alt + p) > Main > Main console font > [] Monospace 체크 해제
2015년 6월 11일 목요일
watch command
주기적으로 명령어를 실행시키고 그 결과를 풀스크린으로 표시해준다.(계속 보고 있어야 하지만) 결과 값이 변경되면 바로 눈에 띈다.
왠만한 리눅스에는 다 들어있다고 한다.
$ man watch
왠만한 리눅스에는 다 들어있다고 한다.
$ man watch
2015년 5월 14일 목요일
2015년 5월 10일 일요일
Windows 7, 한 사용자로 다중 접속하기
http://studyforus.tistory.com/144
1. 위에서 소개하는 대로 RDP Wrapper 를 설치한다.
2. RDPConf 를 실행하여, [] Single Session Per User 의 체크를 없앤다.
3. OK.
1. 위에서 소개하는 대로 RDP Wrapper 를 설치한다.
2. RDPConf 를 실행하여, [] Single Session Per User 의 체크를 없앤다.
3. OK.
2015년 5월 6일 수요일
2015년 5월 3일 일요일
suspend & wol
$ cat /usr/sbin/suspend
#! /bin/sh
[ `id -u` -ne 0 ] && {
echo "${0##*/} must be run as root"
exit 1
}
echo mem > /sys/power/state
$ cat ~/bin/wakeup
#! /bin/sh
mac='00-08-02-65-62-9A'
echo $mac | sed 's/[-:]//g; s/.*/FFFFFFFFFFFF&&&&&&&&&&&&&&&&/' | xxd -r -p |
nc -nuw 1 192.168.0.255 7
#! /bin/sh
[ `id -u` -ne 0 ] && {
echo "${0##*/} must be run as root"
exit 1
}
echo mem > /sys/power/state
$ cat ~/bin/wakeup
#! /bin/sh
mac='00-08-02-65-62-9A'
echo $mac | sed 's/[-:]//g; s/.*/FFFFFFFFFFFF&&&&&&&&&&&&&&&&/' | xxd -r -p |
nc -nuw 1 192.168.0.255 7
2015년 4월 27일 월요일
ubuntu, dhcp 를 고정 IP 로 변경
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
$ sudo /etc/init.d/networking restart
auto lo
iface lo inet loopback
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
$ sudo /etc/init.d/networking restart
2015년 4월 22일 수요일
ssh tunneling
터널링 1: 로칼포트 포워딩
로칼포트 = 1234
SSH서버 = 192.168.0.99
SSH서버계정 = guest
대상호스트 = TARGET # SSH서버와 같을 경우 localhost
대상포트 = 5678
로칼포트 1234 에 접근하면,
192.168.0.99 에서 TARGET:5678 에 접근한 것 같이 동작.
즉. 로칼머신에서는 TARGET:5678 에 접근이 안되고
SSH 서버에서는 접근이 될 때, SSH 서버를 Proxy 같이 사용.
* command line
$ ssh -f -N -L1234:TARGET:5678 guest@192.168.0.99
-N : 터널링만 하고 명령 실행은 못함
-f: 백그라운드로 동작
* ~/.ssh/config
$ cat ~/.ssh/config
Host server
HostName 192.168.0.99
User guest
LocalForward 1234 TARGET:5678
$ ssh -f -N server
* teraterm
Setup > SSH Forwarding... > Add... >
[*] Forward local port: [1234]
to remote machine [TARGET] port [5678]
File > New connection...
Host [ssh://guest@192.168.0.99]
OK
* putty
Connection
Data
Login details
Auto-login username [guest]
SSH
Tunnels
Source port [1234]
Destination [TARGET:5678]
Add
Session
Host Name [192.168.0.99] Port [22]
Saved Sessions [SSH 터널 - 로칼포트 포워딩]
Save
Open
터널링 2: 리모트 포트 포워딩
SSH서버 포트 = 1234
SSH서버 = 192.168.0.99
SSH서버계정 = guest
대상호스트 = TARGET # 로칼머신과 같을 경우 localhost
대상포트 = 5678
SSH 서버의 포트 1234 에 접근하면,
로칼머신에서 target의 5678 에 접근한 것 같이 동작.
* comman-line
$ ssh -R 1234:target:5678 -N -f guest@192.168.0.99
* teraterm
Setup > SSH Forwarding... > Add... >
[*] Forward remote server port: [1234]
to local machine [TARGET] port [5678]
File > New connection...
Host [ssh://guest@192.168.0.99]
OK
참고
* http://egloos.zum.com/milines/v/3781525
* http://linux.systemv.pe.kr/ssh-%ED%8F%AC%ED%8A%B8-%ED%8F%AC%EC%9B%8C%EB%94%A9/
* http://www.revsys.com/writings/quicktips/ssh-tunnel.html
* http://qgp9.github.io/blog/2016/03/26/ssh-proxy-jump-host
tftp 서버 설치
# tftpd 는 블록사이즈가 512 바이트로 고정이지만
# tftpd-hpa 는 client 와 협의해서 가능한한 크게 정한다.
* Ubuntu 12.04
$ sudo apt-get install xinetd tftpd-hpa
$ cat /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/work2/tftpboot" # 원하는 경로로 수정
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="no" # 추가
$ cat /etc/xinetd.d/tftp # 추가
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -u tftp -t 0 -s /work2/tftpboot # 위와 같은 경로 지정
disable = no
}
$ sudo service tftpd-hpa stop
$ sudo service xinetd restart
* CentOS release 6.6 (Final)
$ sudo yum install tftp-server
$ cat /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot # 원하는 경로로 수정
disable = no # no 로 수정
per_source = 11
cps = 100 2
flags = IPv4
}
$ sudo service xinetd restart
# tftpd-hpa 는 client 와 협의해서 가능한한 크게 정한다.
* Ubuntu 12.04
$ sudo apt-get install xinetd tftpd-hpa
$ cat /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/work2/tftpboot" # 원하는 경로로 수정
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="no" # 추가
$ cat /etc/xinetd.d/tftp # 추가
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -u tftp -t 0 -s /work2/tftpboot # 위와 같은 경로 지정
disable = no
}
$ sudo service tftpd-hpa stop
$ sudo service xinetd restart
* CentOS release 6.6 (Final)
$ sudo yum install tftp-server
$ cat /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot # 원하는 경로로 수정
disable = no # no 로 수정
per_source = 11
cps = 100 2
flags = IPv4
}
$ sudo service xinetd restart
2015년 4월 21일 화요일
원격 데스크톱으로 ubuntu 12.04 접속
서버 Ubuntu 12.04
$ sudo apt-get install xrdp
$ sudo apt-get install fluxbox
$ echo "LANG=C exec startfluxbox" > ~/.xsession
$ sudo service xrdp restart
클라이언트 Windows 7
1. Win + R
2. mstsc /f
3. 서버 주소
4-1. 연결 > xrdp Login 창
Module: [sesman-Xvnc]
username: [서버 유저명]
password: [패스워드]
4-2 자격 증명을 저장하면 다음부터 자동으로 로그인 된다.
옵션 표시 > 일반 탭 > [*] 자격 증명 저장 허용 > 연결 >
사용자 자격 증명 입력 창 >사용자 이름, 암호 입력 >
[*] 내 자격 증명 기억 > 확인
context 메뉴에 [submenu] 와 [separator] 추가
$ cat ~/.fluxbox/menu
[begin] (fluxbox)
[submenu] (My Menu)
[exec] (Gnome Terminal) {/usr/bin/gnome-terminal} </usr/share/pixmaps/gnome-terminal.xpm>
[exec] (FireFox) {firefox}
[exec] (Chrome) {/opt/google/chrome/chrome}
[exec] (Meld) {meld}
[end]
[separator]
[include] (/etc/X11/fluxbox/fluxbox-menu)
[end]
$ sudo apt-get install xrdp
$ sudo apt-get install fluxbox
$ echo "LANG=C exec startfluxbox" > ~/.xsession
$ sudo service xrdp restart
클라이언트 Windows 7
1. Win + R
2. mstsc /f
3. 서버 주소
4-1. 연결 > xrdp Login 창
Module: [sesman-Xvnc]
username: [서버 유저명]
password: [패스워드]
4-2 자격 증명을 저장하면 다음부터 자동으로 로그인 된다.
옵션 표시 > 일반 탭 > [*] 자격 증명 저장 허용 > 연결 >
사용자 자격 증명 입력 창 >사용자 이름, 암호 입력 >
[*] 내 자격 증명 기억 > 확인
context 메뉴에 [submenu] 와 [separator] 추가
$ cat ~/.fluxbox/menu
[begin] (fluxbox)
[submenu] (My Menu)
[exec] (Gnome Terminal) {/usr/bin/gnome-terminal} </usr/share/pixmaps/gnome-terminal.xpm>
[exec] (FireFox) {firefox}
[exec] (Chrome) {/opt/google/chrome/chrome}
[exec] (Meld) {meld}
[end]
[separator]
[include] (/etc/X11/fluxbox/fluxbox-menu)
[end]
2015년 3월 11일 수요일
리눅스 초기 설정
- change repository & update
$ sudo apt-get update
- Update packages
$ sudo apt-get install vim
- 디폴트 에디터 바꾸기
vim or vim.basic 선택
- 패스워드 묻지 않고 sudo 를 실행하기 위한 설정
username ALL=(ALL:ALL) NOPASSWD: ALL
<사용자> <호스트>=(유저권한) 명령
* 주의: 파일의 마지막에 추가
- 사용자 추가
2015년 3월 1일 일요일
Building gnu netcat with mingw on cygwin
1. Download
$ wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.bz2
2. Extract
$ tar jxf netcat-0.7.1.tar.bz2
3. Patch
$ wget http://sourceforge.net/p/netcat/bugs/_discuss/thread/f8b0bf92/7d08/attachment/netcat-cygwin.patch
$ cd netcat-0.7.1
$ patch -p2 < ../netcat-0.7.1
4. Configure
$ ./configure --build=i686-pc-mingw32
5. Make
$ make
$ cp src/netcat.exe ~/bin/nc.exe
$ wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.bz2
2. Extract
$ tar jxf netcat-0.7.1.tar.bz2
3. Patch
$ wget http://sourceforge.net/p/netcat/bugs/_discuss/thread/f8b0bf92/7d08/attachment/netcat-cygwin.patch
$ cd netcat-0.7.1
$ patch -p2 < ../netcat-0.7.1
4. Configure
$ ./configure --build=i686-pc-mingw32
5. Make
$ make
$ cp src/netcat.exe ~/bin/nc.exe
2015년 1월 18일 일요일
동영상 구간 자르기 및 합치기
구간 자르기
MP4Box
MP4Box -info original.mp4
MP4Box -out output.mp4 -splitx <start secs>:<end secs> original.mp4
ex) MP4Box -out output.mp4 -splitx 77:137 original.mp4
mkvtoolnix
mkvinfo original.mkv
mkvmerge -o output.mkv --split parts:<start time>-<end time> original.mkv
ex) mkvmerge -o output.mkv --split parts:1:17-2:17 original.mkv
합치기
MP4Box
MP4Box -cat input1.mp4 -cat input2.mp4 ouput.mp4
비디오, 오디오 합치기
MP4Box
MP4Box -add video.mp4 -add audio.m4a ouput.mp4
MP4Box
MP4Box -info original.mp4
MP4Box -out output.mp4 -splitx <start secs>:<end secs> original.mp4
ex) MP4Box -out output.mp4 -splitx 77:137 original.mp4
mkvtoolnix
mkvinfo original.mkv
mkvmerge -o output.mkv --split parts:<start time>-<end time> original.mkv
ex) mkvmerge -o output.mkv --split parts:1:17-2:17 original.mkv
합치기
MP4Box
MP4Box -cat input1.mp4 -cat input2.mp4 ouput.mp4
비디오, 오디오 합치기
MP4Box
MP4Box -add video.mp4 -add audio.m4a ouput.mp4
자막 합치기
MP4Box -add 자막.srt:hdlr=sbtl:lang=kor input.mp4 -out output.mp4
https://gist.github.com/wmanth/d08fb9fcc87dcf84ee5fd4a1d8b9d91c
피드 구독하기:
글 (Atom)