실시간 cd recording...

codeart의 이미지

요즘 ebs 방송 같은 거 바로 cd / dvd로 굽잖아요...
그런 비슷한 기능을 만들어야 하는데...
linux의 좋은 툴인 mkisofs와 cdrecord 만으로는 안 될 것 같네요...
어느 부분을 공부해야 이런 기능을 구현할 수 있을 까요...

zeropuls의 이미지

그것들은 엄연한 시디 레코딩 프로그램들입니다.
요즘 티비에서 선전한다는 디비디 실시간 레코더 예기하시는것 같은데요?
그건 단순히 레코더만 달린게 아닙니다.
그 기기는 동영상에 대한 실시간 인코딩, 디코딩이 가능하고도 남는 하드웨어 파워로 만들어지는 데이터를 실시간으로 레코딩하거나, 임의의 기억장치에 일정한 크기로 잘라서 계속 저장하고, 일정크기가 넘어가면 고속으로 레코딩을 하게 되겠죠.

님께서 필요한것이라 보는건 동영상의 실시간 인코딩 하드웨어와의 연계나, 알고리즘의 접목으로 실시간으로 인코딩하면서 버퍼에 데이터를 쌓아두고, 레코딩하는 것을 구현하는게 젤일것 같군요.

단, 인코딩 속도가 레코딩 속도를 못따라 가면 반항하는 레코더를 볼겁니다.

(외람된 말씀이오나, 리눅스 커널만 포팅해서는 아무짝에도 쓸데가 없답니다. 쓸만한 프로그램과 열심히 사용해줄 유저가 없는한은 커널 그 자체만은 일반 사용자에겐 쓰레기 소릴 듣게 되죠. 하지만, 쓸만한 프로그램이 아직은 넘쳐나죠.ㅋㅋ)

어느날 문득 잠자다 깨었을때...
내 주변에 아무도 없다는걸 깨닫기까진 상당한 시간이 필요하다.
난 아직, 홀로됨에 익숙하지 않은걸까?

codeart의 이미지

답변 감사합니다.
제가 지금 테스트 하고 있는 장비는 dvr입니다.
cdrtools를 크로스 컴파일하는 것도 저한테는 상당한 일이었는데...
짧은 지식의 한계를 체감하고 있습니다.
SVCD 포맷에 맞추어 데이터를 집어 넣으려 하는데...
막막하다는 표현밖에...

(커널을 포팅하기만 하면 의미가 없긴 없겠군요...:-)

미래를 수정할 수 있는 때는 현재이다.

fibonacci의 이미지

zeropuls wrote:

(외람된 말씀이오나, 리눅스 커널만 포팅해서는 아무짝에도 쓸데가 없답니다. 쓸만한 프로그램과 열심히 사용해줄 유저가 없는한은 커널 그 자체만은 일반 사용자에겐 쓰레기 소릴 듣게 되죠. 하지만, 쓸만한 프로그램이 아직은 넘쳐나죠.ㅋㅋ)

단 한명밖에 쓰지 않는 OS라도 가치는 있습니다. 쓰레기라는 표현은 매우 불쾌하군요. 리눅스를 왜 만지는지 궁금하네요.

ps. 지금의 리눅스도 토발즈의 사적인 OS에서 시작했습니다.

No Pain, No Gain.

codeart의 이미지

불쾌해 하지 마시길...
저분은 유저 입장에서 실용성이 없는 OS가 어떤 의미가 있겠느냐고?
피보나찌 님께서는 개발자의 입장을 말씀하신 거 겠지요??
리눅스를 쓰레기라고 지칭한 것은 아니니 노여움 거두시지요...

혹시 제 게시물이 다툼으로 번질까봐 걱정되어서 중재하고 싶어 써봅니다.

그나저나
실시간 레코딩을 하기 위한 정보좀...주세요...

미래를 수정할 수 있는 때는 현재이다.

youlsa의 이미지

예전에 윈도우용으로 VCD 연주기를 만들었었던적이 있는데요, iso9660 형식으로 파일을 생성하고 내용을 쓸수만 있다면 VCD 형식에 맞게 만드는게 그리 어려운 일은 아닙니다. mpeg 파일을 실시간으로 인코딩 할 수 있다면 입력되는 영상들을 계속 인코딩해서 인코딩이 끝나는대로 파일로 저장하구요(\MPEGAV\AVSEQ01.DAT 던가 그렇습니다.), 영상 입력이 끝나거나 설정해놓은 용량이 다하면 잽싸게 인덱스 파일들의 형식에 맞추어 파일들을 만들어서 해당 디렉토리에 써주면 됩니다. (\VCD\INFO.VCD던가 하는거하고 그외에도 몇개 더 있는거 같은데 기억이 잘...) 데이타의 오프셋 계산과 뭐 그런 일들이 관건이 될거 같습니다. 한 비트만 삐끗해도 플레이어들이 무한루프를 돈다거나 죽어버리는 일이 가끔 있습니다. ^_^

스펙북이 있었는데 지금은 찾을수가 없네요. 혹시 참고 하시려면 제 VCD Player의 소스를 보세요. 좀 많이 허접하지만요... -_-;; Video.h와 Video.cpp 부분이 VCD 스펙 디코딩해주는 부분입니다. ReadEntries()라는 함수에서 읽어오는 내용들이 VCD의 전체적인 내용들입니다. 참! 이 소스는 VCD 1.0 스펙과 VCD 2.0 스펙을 모두 플레이할수 있게 되어 있는데요 VCD 1.0 스펙만 사용하실거라면 아마 실시간 레코딩 등을 하기 아주 쉬우실겁니다. (보통 대부분 VCD들은 VCD 1.0입니다) 근데, VCD 2.0으로 하시려면 좀 머리 복잡하실수도... 소스도 2.0때문에 좀 복잡해보일수도 있어요. 2.0에서는 DVD와 거의 비슷한 정도의 복잡한 VCD가 가능하거든요. 메뉴를 구성한다거나 메뉴의 특정 부분을 클릭하면 분기를 한다거나, 특정 동영상이나 소리를 루핑 한다거나 하는 일들이 가능하지요.

http://i-vcdp.sourceforge.net

여기에서 zip으로 묶어놓은 소스를 보셔도 되고 cvs에 있는 소스를 보셔도 됩니다.

=-=-=-=-=-=-=-=-=
http://youlsa.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.