Asciinema: Kuantisasi waktu

Dibuat pada 20 Mei 2016  ·  7Komentar  ·  Sumber: asciinema/asciinema

Berdasarkan #156 yang baru saja digabungkan, saya ingin mengusulkan fitur berikut: opsi --max-wait dapat mengambil urutan batas tunggu maksimum (atau mungkin ada opsi lain untuk itu). Sebagai contoh:

asciinema rec -w 0.4 0.8 1 3

(formatnya dapat didiskusikan, mungkin sesuatu dengan pemisah non-spasi lebih baik/lebih mudah diuraikan: 0.4,0.8,1,3 )

Ini berarti bahwa

  • penundaan waktu antara 400ms dan 800ms dipotong menjadi 400ms
  • penundaan waktu antara 800ms dan 1s dipotong menjadi 800ms
  • waktu tunda antara 1s dan 3s dipotong menjadi 1s
  • waktu tunda lebih dari 3 detik dipotong menjadi 3 detik (seperti dengan nilai tunggal max-wait )

Ini akan memungkinkan untuk membuat beberapa penyesuaian lagi pada aliran waktu perekaman, seperti meminimalkan penundaan pengetikan (membuatnya lebih lancar), sambil tetap dapat membuat jeda pendek dan panjang (untuk menunjukkan sesuatu).

Apa pendapat Anda tentang fitur ini? Saya pikir itu tidak sulit untuk dilakukan dan saya bisa menerapkannya.

idea

Komentar yang paling membantu

Hai @laughedelic ,

Saya memiliki persyaratan yang hampir sama dengan Anda, jadi saya akhirnya membuat ini https://github.com/cirocosta/asciinema-edit

Dibutuhkan pemeran asciinema (v2) dan kemudian mengubah aliran acara sesuai dengan yang Anda butuhkan.

Saya baru saja selesai menambahkan kuantisasi seperti yang Anda gambarkan, btw 👍

Semoga bermanfaat untuk Anda!

Terima kasih!

Semua 7 komentar

@sickill ada pendapat tentang ini?

Itu ide yang menarik. Saya merasa bahwa ini akan digunakan oleh jumlah pengguna yang sangat kecil. -w seperti sekarang ini sudah sangat berguna tetapi dari yang saya tahu tidak banyak orang yang menggunakannya - orang hanya menggunakan default.

Saya berada di pagar di sini ... Di satu sisi saya sangat menyukai ide itu, di sisi lain saya tahu bahwa itu akan menambah cukup banyak kode, kode yang perlu dipertahankan untuk mungkin 1% pengguna (buktikan saya salah seperti untuk perkiraan di sini ;))

Bagaimana dengan ini:

Saya memiliki ide ini untuk sementara waktu untuk membuat seperangkat alat terpisah untuk memproses asciicast. Hal-hal seperti mempercepatnya 2x, menerapkan algoritma -w ke file asciicast yang sudah direkam, cari + hapus teks arbitrer (kata sandi yang terlihat).

Kami dapat memiliki mekanisme untuk menambahkan perintah tambahan ke asciinema , dilakukan dengan cara yang sama seperti pada git - ketika Anda menjalankan asciinema foo ia memeriksa apakah foo adalah perintah internal, jika tidak mencari asciinema-foo biner di $PATH dan menjalankannya sebagai gantinya. Anda dapat menulis perintah tambahan dalam bahasa apa pun.

Setelah di atas, kita dapat membuat asciinema-quantize , atau lebih umum asciinema-process , yang dapat mendukung berbagai sakelar (seperti peningkatan -w , mungkin -s untuk mengubah kecepatan seluruh rekaman). Itu akan membaca input json, memprosesnya sesuai dengan opsi, dan menulis output json. Jika itu adalah perintah yang populer, ia dapat dipromosikan ke perintah internal (atau dikirimkan dalam paket asciinema sebagai asciinema-* binari).

Saya terbuka untuk saran lain!

Sebenarnya saya sedang memikirkan hal yang sama: melakukannya secara eksternal, hanya memproses file record json. Hal lain adalah bahwa saya tidak punya banyak waktu sekarang untuk mempelajari Go, tetapi jika integrasi perintah eksternal ini akan bekerja dengan executable apa pun yang disebutkan oleh konvensi, ini dapat membuat ekstensi asciinema menjadi lebih mudah.

Btw, saya kira Anda tahu tentang asciinema2gif yang cukup berguna dan berfungsi. Saya melihat beberapa diskusi di sini tentang konversi gif dan itu tidak ada dalam rencana, dan saya sangat memahaminya, tetapi karena pengguna mungkin memiliki kebutuhan yang berbeda, ekstensibilitas seperti itu bisa menjadi cara yang sangat bagus untuk membiarkan pengguna memenuhi kebutuhan spesifik mereka sendiri.

Senang mendengar pendapat serupa. Apakah Anda lebih akrab dengan Python? Dalam bahasa apa Anda akan menerapkan ini?

@sickill yah, sebenarnya saya menggunakan jq dengan beberapa filter primitif sejauh ini. Sebagai contoh:

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

Akan menghasilkan json yang akan dimainkan oleh asciinema play dua kali lebih cepat. Atau

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

sama dengan menyetel waktu max-wait ke 1.234 . Saya bukan jq-guru, jadi mungkin itu bisa dilakukan dengan lebih mudah, tetapi ini cukup mudah (jika seseorang terbiasa dengan jq secara umum) dan itu berhasil. Menerapkan fitur kuantisasi waktu yang diusulkan dengan cara ini sedikit lebih rumit, tetapi juga sepele.

Ini bisa, tentu saja, dibungkus dengan skrip shell apa pun dengan opsi yang ditentukan. Tetapi jika Anda ingin lebih banyak integrasi, itu juga dapat dilakukan dengan cara _sangat mirip_ menggunakan JMESPath , yang memiliki berbagai implementasi termasuk Python dan Go.

Hai @laughedelic ,

Saya memiliki persyaratan yang hampir sama dengan Anda, jadi saya akhirnya membuat ini https://github.com/cirocosta/asciinema-edit

Dibutuhkan pemeran asciinema (v2) dan kemudian mengubah aliran acara sesuai dengan yang Anda butuhkan.

Saya baru saja selesai menambahkan kuantisasi seperti yang Anda gambarkan, btw 👍

Semoga bermanfaat untuk Anda!

Terima kasih!

Hai @cirocosta! Terima kasih telah ping saya! Luar biasa bahwa Anda telah membuatnya menjadi alat dan berfungsi dengan format v2. Saya akan mencobanya lain kali saya merekam pemeran asciinema.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat