Asciinema: 時間の量子化

作成日 2016年05月20日  ·  7コメント  ·  ソース: asciinema/asciinema

最近マージされた#156に基づいて、次の機能を提案したいと思います。 --max-waitオプションは、一連の最大待機範囲を取ることができます(または、そのための別のオプションがある可能性があります)。 例えば:

asciinema rec -w 0.4 0.8 1 3

(形式については議論の余地があります。おそらく、スペース以外の区切り文字を使用した方が解析しやすい/簡単です: 0.4,0.8,1,3

これは、

  • 400msから800msの間の時間遅延は400msにカットされます
  • 800msから1sまでの時間遅延が800msに短縮されます
  • 1秒から3秒の間の時間遅延は1秒に短縮されます
  • 3秒を超える時間遅延は3秒に短縮されます(単一値のmax-waitと同様)

これにより、タイピングの遅延を最小限に抑える(より流暢にする)など、録音の時間の流れをさらに調整できると同時に、(何かを指摘するために)短い一時停止と長い一時停止を行うことができます。

この機能についてどう思いますか? 難しいことではなく、実装できると思います。

idea

最も参考になるコメント

ねえ@laughedelic

私はあなたとほぼ同じ要件を持っていたので、私はこれを作成することになりましたhttps://github.com/cirocosta/asciinema-edit

asciinema cast(v2)を取り、必要に応じてイベントストリームを変更します。

あなたが説明した方法で量子化を追加し終えたところです、ところで👍

お役に立てば幸いです。

THX!

全てのコメント7件

@sickillこれについて何か意見はありますか?

それは興味深い考えです。 ごく少数のユーザーに利用される気がします。 今日の-wはすでに非常に便利ですが、私が知っていることから、多くの人がそれを使用しているわけではありません。人々はデフォルトを使用しているだけです。

私はここでフェンスにいます...一方では私はこのアイデアが本当に好きです、他方ではそれがかなりの量のコードを追加することを知っています、おそらく1%のユーザーのために維持する必要があるコード(私が間違っていることを証明してください)ここでの見積もりについて;))

これはどうですか:

私はしばらくの間、asciicastを処理するための別のツールセットを作成するというアイデアを思いつきました。 2倍高速化するなど、すでに記録されているasciicastファイルに-wアルゴリズムを適用し、任意のテキスト(表示されているパスワード)を見つけて消去します。

gitと同じ方法で、 asciinemaにコマンドを追加するメカニズムを作成できます。 asciinema fooを実行すると、 fooが内部コマンド。そうでない場合は、 $PATHasciinema-fooバイナリを検索し、代わりに実行します。 追加のコマンドは任意の言語で記述できます。

上記があれば、 asciinema-quantize 、またはより一般的なasciinema-processを作成できます。これは、さまざまなスイッチをサポートできます( -w改善、おそらく-s速度を変更できます)録音全体)。 入力jsonを読み取り、オプションに従って処理し、出力jsonを書き込みます。 それが人気のあるコマンドである場合、それは内部コマンドに昇格することができます(またはasciinema-*バイナリとしてasciinemaパッケージで出荷されます)。

私は他の提案を受け入れています!

実際、私は同じことを考えていました。外部でそれを行い、レコードのjsonファイルを処理するだけです。 もう1つは、Goを学ぶ時間があまりないということですが、この外部コマンドの統合が、規則で指定された実行可能ファイルで機能する場合は、asciinemaの拡張がはるかに簡単になる可能性があります。

ところで、私はあなたが非常に便利でちょうど機能するasciinema2gifについて知っていると思います。 ここでgif変換についての議論をいくつか見て、それは計画に含まれておらず、完全に理解していますが、それでもユーザーのニーズは異なる可能性があるため、このような拡張性は、ユーザーが特定のニーズを自分で満たすための非常に優れた方法になる可能性があります。

同様の意見を聞いてうれしいです。 Pythonに精通していますか? これを実装する言語は何ですか?

@sickillええと、実際、私はこれまでいくつかのプリミティブフィルターでjqを使用していました。 例えば:

jq '.stdout |= map(.[0] *= 0.5)' record.json > record.twice-faster.json

asciinema play 2倍速く再生されるjsonを生成します。 または

jq '.stdout |= map(.[0] |= ([., 1.234] | min))' record.json > record.cut.json

max-wait時間を1.234設定するのと同じです。 私はjqの第一人者ではないので、おそらくもっと簡単に行うことができますが、これは非常に簡単で(jq全般に精通している場合)、機能します。 提案された時間量子化機能をこのように実装することは、もう少し複雑ですが、簡単でもあります。

もちろん、これは、指定されたオプションを使用して、あらゆる種類のシェルスクリプトでラップできます。 ただし、さらに統合が必要な場合は、PythonやGoなどのさまざまな実装があるJMESPathを使用して、「非常によく似た」方法で行うこともできます。

ねえ@laughedelic

私はあなたとほぼ同じ要件を持っていたので、私はこれを作成することになりましたhttps://github.com/cirocosta/asciinema-edit

asciinema cast(v2)を取り、必要に応じてイベントストリームを変更します。

あなたが説明した方法で量子化を追加し終えたところです、ところで👍

お役に立てば幸いです。

THX!

こんにちは@cirocosta! 私にpingしてくれてありがとう! あなたがそれをツールにしたこと、そしてそれがv2フォーマットで動作することは素晴らしいです。 次回、アシイネマのキャストを録音するときに試してみます。

このページは役に立ちましたか?
0 / 5 - 0 評価