Re: [問題] 程式啟動流程出錯

看板LinuxDev作者 (尋找奶昔)時間10年前 (2014/11/09 22:56), 10年前編輯推噓3(304)
留言7則, 2人參與, 最新討論串2/2 (看更多)
板上各位大大好 目前已經有找到問題發生的可能地點了 目前發現 壓縮成 H.264 那部分是沒有問題的 主要發生原因是在檔案寫入至 硬碟的部分出錯了 但是就是不知道為什麼會出錯 只要在開檔時 open 加入 O_SYNC 就能成功將影格寫入 但由於 IO 動作太慢了 導致擷取的影格漏掉了 不知道有沒有什麼方法可以 提高寫入速度 原本只利用 Linux 原本的快取空間來寫入就會出現破圖問題 不知道 Linux 在登入動作時會有做一些 IO 相關的處理嗎 感謝各位大大 >///< ※ 引述《sorkayi (尋找奶昔)》之銘言: : 板上大大安安 : 最近我在 TI 的開發板上做了影像擷取轉 H264 再存入硬碟中 : 如果我的所寫的程式是利用手動啟動的(./xxxxxx &) : 錄影出來的影像就不會破圖 : 但若是透過 init.d/rcS 來開啟程式 : 錄出來的影像就會有一小段出現破圖 : 不知道板上大大有沒有什麼建議 @@ : 能夠自動開啟程式 又不會出現破圖情形 : 感謝各位的閱讀.... -- 公告 D. #1ByBycco (DSLR) [ptt.cc] [作品] 台灣山 → sorkayi :白目 05/17 14:52 D.罵人白目違反 3-4 人身攻擊相關規定,sorkayi 警告一次。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.2.251 ※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1415544983.A.4C8.html

11/09 23:43, , 1F
Linux IO調整的部分可以google dirty ratio
11/09 23:43, 1F

11/09 23:46, , 2F
可以調整磁碟IO與記憶體cache的運用,比O_SYNC來的溫和
11/09 23:46, 2F

11/09 23:49, , 3F
又或者你可以把寫入動作開成獨立thread,用兩個buffer
11/09 23:49, 3F

11/09 23:50, , 4F
輪流切換避免waiting I/O之類的方式看看
11/09 23:50, 4F

11/09 23:52, , 5F
太即時寫入或是過依賴Cache到最後out of memory都有可能~
11/09 23:52, 5F
感謝 目前的做法就是利用 thread 來將 buffer 資料寫入硬碟中 影像Buf->壓縮H264->壓縮Buf->寫入硬碟 這邊都是同時開 thread 來做的 後來才發現寫入時會有出錯 ※ 編輯: sorkayi (36.235.91.159), 11/10/2014 08:51:23

11/10 12:47, , 6F
同時開 thread 的意思是?
11/10 12:47, 6F

11/10 12:50, , 7F
各開一條 thread ,用 producer consumer 往下傳嗎?
11/10 12:50, 7F
沒錯中間再透過 Buff 緩衝 但目前查到是寫入硬碟部分有出錯了 因此有利用 fdatasync 來同步是沒看到破圖 但心裡就是毛毛的 ※ 編輯: sorkayi (36.235.91.159), 11/10/2014 17:11:37
文章代碼(AID): #1KNu2NJ8 (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1KNu2NJ8 (LinuxDev)