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 -add 자막.srt:hdlr=sbtl:lang=kor input.mp4 -out output.mp4
https://gist.github.com/wmanth/d08fb9fcc87dcf84ee5fd4a1d8b9d91c

2014년 10월 30일 목요일

bash 스크립트 작성할 때 주의점

http://mywiki.wooledge.org/BashPitfalls

프로세스 치환
http://mywiki.wooledge.org/ProcessSubstitution

2014년 8월 28일 목요일

vi 로 바이너리 편집

잊지 말자. vi 로 바이너리 편집하기

0.  실수를 대비해 파일 복사
$ cp <바이너리 파일> <바이너리파일>.mod

1. 파일을 바이너리 모드로 오픈
$ vi -b <바이너리 파일>.mod

2. hex dump로 변환 
:%!xxd -g1

3. 편집

4. binary 로 변환
:%!xxd -r

5. 저장
:wq

2014년 8월 25일 월요일

bash 에서 변수가 숫자인지 확인하기

방법 1.
http://stackoverflow.com/questions/806906/how-do-i-test-if-a-variable-is-a-number-in-bash

re='^[0-9]+$'
if ! [[ $yournumber =~ $re ]] ; then
   echo "error: Not a number" >&2; exit 1
fi

방법 2.
http://grzechu.blogspot.kr/2006/06/bash-scripting-checking-if-variable-is.html

if [ $VARIABLE -eq $VARIABLE 2> /dev/null ]; then
   echo $VARIABLE is a number
else
   echo $VARIABLE isn't a number
fi

2014년 6월 16일 월요일

-Wdeprecated-declarations 경고 없애기

gcc -Wall 로 컴파일 할 때 -Wdeprecated-declarations 경고가 발생하는 경우

1. 경고가 생기지 않는 함수를 사용

2. 경고를 표시하지 않도록 함
2-1. 커맨드 라인에서 지정(모든 함수에 적용)
-Wno-deprecated-declarations 옵션 추가

2-2. #pragma 사용(이후의 모든 함수에 적용)
소스나 헤더에 다음을 추가
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

2-3 #pragma 사용2(해당 함수 사용 부분에만 적용)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
warning_function();
#pragma GCC diagnostic pop

2-4 매크로에 끼워 넣기
#define LOG(level, ...) \
    do { \
        _Pragma("GCC diagnostic push") \
        _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
        LogPrint(level, __VA_ARGS__); \
        _Pragma("GCC diagnostic pop") \
    } while (0)

참고
deprecated 는 사용 가능하지만 다른 함수의 사용을 권장하는 경우
obsolete 는 사용할 수 없게 된 함수인 경우







2014년 5월 13일 화요일

rubic cube를 배우자

회사 사람에게 소개받은 사이트

http://blog.naver.com/vincentcube


큐브 배워보겠다고 여기 저기 찾아 다니며
외워도 외워도 못 외우고 제자리 걸음만 하다
여기에서 급진전을 이뤘다.

2014년 5월 7일 수요일

Windows 7 hosts 파일 경로

c:\Windows\System32\drivers\etc\hosts

cygwin을 사용하는 경우 리눅스와 같은 경로로 접근 가능
$ vi /etc/hosts