オーディオで発生した時間/場所のタイムスタンプを使用して、コピーされたテキストの各段落にタグを付けようとしています。
mplayer
そしてemacs
私を近づけなさい。 mplayer
たとえば、端末から適切な時間情報文字列を出力します。 (コマンドとサンプルログ)
mplayer au-file 1>event.log 2>&1
A: 0.8 (00.7) of 3207.0 (53:27.0) 0.1% [J
A: 0.9 (00.9) of 3207.0 (53:27.0) 0.1% [J
A: 1.0 (01.0) of 3207.0 (53:27.0) 0.1% [J
特定のアンバウンドキー(例F12
:)を使用して、ログ内のイベント、特に段落の先頭を表示できます。
xdotool key --window $termID F12
A: 3.1 (03.0) of 3207.0 (53:27.0) 0.1% [J
No bind found for key 'F12'.
A: 3.2 (03.2) of 3207.0 (53:27.0) 0.1% [J
A: 3.3 (03.3) of 3207.0 (53:27.0) 0.1% [J
上記は素晴らしい作品です。次に必要なのは注入するライン番号ですevent.log
。emacs
現在の場所を読み取ってログに追加するためにキーをバインドして、内部的にこれら2つのイベントをトリガーできます。emacs
point
はい、推測しましたが、質問があります。mplayer
次の行を書き込むときに追加したテキストを上書きするため、ストリームポインタ(または何か?)が保持されているようです。何が起こっているのかわかりませんが、私が追加した行のうち最後のログには何も表示されませんecho $number >>events.log
。 。
ログを見ました tail -f events.log
が、時々行が出ているのを見るとそこまで行ったようです...
この問題を解決する方法はありますか?
一部のfu
ログを使用するか、まったく異なるアプローチを使用してください。一部のツールはこれをリアルタイムで実行できます。字幕ツールとオーディオビデオエディタを見てみましたが、あまりにも薄暗いようです。私はどんなアイデアでも開いています。
ベストアンサー1
実際にはmplayer
ファイルに自分のポインタを保持するので、echo
ファイルに書き込むときにそれを知りません。ファイルに複数のプログラムを書き込む場合は、すべてのプログラムがファイルを開くようにスケジュールします。追加モード。追加モードでは、各書き込みはファイルの終わりに発生します。シェルで判断すると>>
。: >events.log
再起動するには、空のファイルを作成してmplayer … >>events.log
。
これは、両方のプログラムのすべてのバイトがファイルに表示されることを保証しますが、原則的に散在しないことを保証するものではありません。理論的には、いくつかのmplayer出力がファイルに表示されることecho hello >>events.log
があります。実際、ほとんどのシステムで最大512バイトを印刷するechoコマンドはフラグメントで終わります。h
e