ffmpeg 실시간메세지 임의 필드 추출은 성공은했는데요 .ffmpeg종료가 되어야 데이터가 한번에 저장이 되어집니다 . 실시간 데이터저장방법좀 도와주시면감사하겠습니다.

ldshyun7의 이미지

점심식사 맛있게드십시요.

File attachments: 
첨부파일 크기
Image icon 11.png19.84 KB
qiiiiiiiip의 이미지


awk가 line-by-line으로 처리되는데,
redirection과 겹쳐서 fflushing이 잘 안되는것 같네요..

awk가 문제인지,redirection이 문제인지는 잘 모르겠네요.
둘이 따로따로는 잘 동작하는데요..

ping -c1 192.168.0.1 | awk '{print $1}' >> log.txt

로 하시고, 실시간으로 반복동작이 필요하면,
앞뒤로 loop와 sleep을 추가하시면 되겠습니다.

ldshyun7의 이미지

글을 너무올려서 도배를 하는것같아서 기존글을 바꿔치기했거든요

이부분 죄송합니다.

그래도 핵심 내용은 실시간 메세지 임의 필드 추출과 같은 상황이기때문에.. 도움이 엄청되었습니다.

아직 awk 지식이 얇다보니 이해가 좀 힘들지만 한번 검색해서 해봐야겠네요

qiiiiiiiip의 이미지


저도 궁금해서 찾아봤습니다. 일단 아래 사이트에 해결방법이 있습니다.
http://mywiki.wooledge.org/BashFAQ/009

command1 | command2 > out.txt
형식의 명령어 구문에서의 문제인데요,

command2에서 command1의 출력을 계속 bufferring하고 있다가,
한꺼번에 출력하기 때문에 생기는 문제입니다.

한꺼번에 출력(flush)하는 시점은 버퍼가 꽉차거나, command1이 정상종료하거나 인데,
현재는 두가지 조건 중 어느것도 만족이 안되기 때문입니다.

ping -c1 을 주면 정상종료 조건이 만족되므로 이 시점에서 fflusing이 일어납니다.

해결방법은

1. 일단 정상종료하도록 짧은 코맨드를 루프를 돌면서 날리는것이 제일 좋은 방법이고
2. command2에 해당하는 명령어들이 모두 line-buffer를 사용하도록 옵션을 주는 방법입니다.
일부 명령어에 대해서 이 옵션은 위 사이트에 잘 나와있습니다.
예를 들어 아래와 같은 방법이 되겠지요..

ping 192.168.0.1 | grep --line-buffered From | sed -u 's,From,To,' | awk '{print $1; fflush()}' > log.txt

ldshyun7의 이미지

아.. 명령어에 따라 콘솔에 메세지가 지속적으로 뜨는반면

어떤건 커서만 깜박거리다가 완료나 종료돼었을때 한번에 콘솔에 출력돼는경우를

봤는데요..이것이 바로 fflush() 가 안되고 버퍼링에 계속 담겨있어서 그랬군요..

Buffered I/O 방식도

Fully buffered IO : 버퍼가 가득차거나 fflush()가 호출되거나.
Line Buffered IO : 버퍼가 가득차거나 개행문자를 만났을때
UnBuffered IO : 한글자씩 출력

인터넷을 검색해보니 대분류에서 저렇게 설명이되있더라구요..

콘솔의 메세지가 어떤방식으로 출력돼는지 조금씩 이해가갑니다.

ls -l |

까지 할경우 검색된 자료가 메모리에 저장이 되서

grep root |

grep 유틸리티로 root 문자를 변수에서 검색하고

뭐 이런결과값들을 수동으로 플래쉬를 써서 출력시키든지 버퍼를 채워서 일어나게하든지..

뭐그렇게 하나보군요..

솔직히 지금 ffmepg 실시간기록 제가원하는방식으로 확실하게 해결할수있을지 장담은 못하겠는데..

그래도 희망이 생긴것같아 너무감사드립니다.

익명 사용자의 이미지

PHP에서 실행 결과를 처리하려면 차라리 파일을 열기보다는 PHP의 popen 함수를 사용하시는 게 더 낫습니다.

http://php.net/manual/en/function.popen.php

ldshyun7의 이미지

빠른속도로 텍스트파일을 계속 읽어줘야하는데 저걸로 쓰면 유용하겠군요..감사합니다.

ldshyun7의 이미지

댓글 첨부 파일: 
첨부파일 크기
Image icon 아이피기록.png79.55 KB

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.