All(266)
-
[삽질기록] RAW H.264(AVC)에 MP4컨테이너 씌우기 #2 / FFmpeg 빌드
ffmpeg를 사용해서 muxing을 하기 위해 파일을 여니, ffmpeg avcodec_open2 returns -22 if I change my speaker configuration, stackoverflow의 글처럼, avcodec_open2에서 -22를 리턴하는 상황이 발생했다. 차이점이라면 Stackoverflow의 글에서는 스피커와 관련된 설정을 변경했다고 하고, 나의 경우에는 아무런 설정의 변경이 없었다는 것 정도. 알고보니 ffmpeg에 mux/demux관련된 모듈이 빠져있어서 발생하는 문제로, ffmpeg를 다시 빌드해야 해결할 수 있을 것 같았다. 일단 기본적인 내용은 ffmpeg for android 빌드, not to be programmer 글과 윈도우에서 AndroidStudi..
2019.06.03 -
[삽질기록] RAW H.264(AVC)에 MP4컨테이너 씌우기 #1
h264는 코덱이고 mp4는 컨테이너이다. 컨테이너와 코덱의 차이점에 대해서는 코덱이 뭔가요? (코덱과 컨테이너의 차이) by Michael Fitzer, 교양있는 교양채널에 잘 기술되어있으니 참조하도록 하자. 단순하게 말하면 h264로 압축된 데이터를 mp4파일로 만들기 위해서는, mp4컨테이너 파일을 만들어주기만 하면 된다. 몹시 심플한 얘기처럼 들리지만, 생각보다 산 넘어 산인 상황이 반복되고 있다. 이 내용을 기록해두면 언젠가 쓸모있을 것 같아서, 시간이 날 때마다 조금씩 기록하기로 했다. Android의 MediaCodec, MediaExtractor, MediaMuxer. 컨테이너를 생성하고, 컨테이너에 영상과 오디오 데이터를 집어넣는 과정을 먹싱(Muxing)이라고 한다. 먹싱에 대한 자세한..
2019.05.29 -
Flutter 관련 자료 정리
Build Native Mobile Apps with Flutter, Udacity https://classroom.udacity.com/courses/ud905 Flutter Resources Documentation:https://docs.flutter.io/ Github:https://github.com/flutter/flutter StackOverflow:https://stackoverflow.com/questions/tagged/flutter Gitter:https://gitter.im/flutter/flutter Effective Dart Guide:https://www.dartlang.org/guides/language/effective-dart Dart Tips:https://www.dar..
2019.05.26 -
[Android/Java] 파일 출력(FileOutputStream)관련 삽질 기록
문제 해결에 도움이 됐던 글들은 아래와 같습니다. FileOutputStream, Android Developers 안드로이드 바이너리(binary) 파일 입출력 1. [File, FileOutputStream, FileInputStream, BufferedOutputStream, BufferedInputStream] (Android Binary File I/O 1), 개발자를 위한 레시피 [자바][IO] 텍스트 파일 생성하고 파일에 텍스트 쓰기 (3) - FileOutputStream 활용, Astronaut's Note Android에서 바이너리 데이터를 출력하는 경우 FileOutputStream을 사용하면 쉽게 파일을 출력할 수 있다. byte[] data = "Hello".getBytes(); ..
2019.05.23 -
5-1. 다이나믹 프로그래밍
다이나믹 프로그래밍 큰 문제를 작은 문제로 나눠서 푸는 알고리즘을 말한다. Devide and Conquere와 비슷하지만, 큰 문제를 작은 문제로 나눴을 때 작은 문제들 중 동일한 문제를 계산하지 않는다는 차이점이 있다. 두 가지 속성을 만족해야 다이나믹 프로그래밍으로 문제를 풀 수 있다. 겹치는 부분 문제가 나타난다. (Overlapping Subproblem) 최적 부분 구조가 나타난다. (Optimal Substructure) 즉, 문제의 정답을 작은 문제의 정답에서 구할 수 있다. 다이나믹 프로그래밍에서 각 문제는 한 번만 풀어야 한다. 따라서, 정답을 한 번 구했으면 정답을 어딘가에 저장해놓는다. 이런 방법을 Memoization이라고 한다. 다이나믹 프로그래밍을 해결하는 방법에는 Top-do..
2019.05.20 -
Feiyu G6, GX85, 13.8인치 연장봉 네 개로 160cm짜리 짐벌을 만들어봤다.
지난번 오즈모 모바일과 모노포드를 연결해보고 삘받은 나머지, 아마존에서 13.8인치 연장봉 네 개를 주문했다. 캘리브레이션을 좀 더 조정해야겠지만, 꽤나 마음에 드는 결과물이 나와서 만족스럽다. 다음 여행때는 좀 더 다양한 시점으로 풍경들을 담아올 수 있을 듯 하다.
2019.05.19