这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@Sunwood-ai-labs
Copy link
Owner

  • Set default video bitrate to 50 Mbps (previously 20 Mbps)
  • Maintain default FPS at 24
  • Disable automatic setting changes on video import
  • Disable automatic setting adjustments during rendering
  • Preserve user-configured export settings consistently

- Set default video bitrate to 50 Mbps (previously 20 Mbps)
- Maintain default FPS at 24
- Disable automatic setting changes on video import
- Disable automatic setting adjustments during rendering
- Preserve user-configured export settings consistently
@Sunwood-ai-labs Sunwood-ai-labs merged commit d15977f into main Nov 15, 2025
4 checks passed
@gemini-code-assist
Copy link

Summary of Changes

Hello @Sunwood-ai-labs, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly improves the predictability and quality of video exports by updating the default video bitrate to 50 Mbps and, crucially, by preventing automatic modifications to user-configured export settings. This change ensures that once a user sets their desired export parameters, these settings are respected and consistently applied throughout the video import and rendering workflows, providing a more reliable and user-controlled experience.

Highlights

  • Default Video Bitrate: Increased the default video export bitrate from 20 Mbps to 50 Mbps, leading to higher quality video exports by default.
  • Video Import Settings: Disabled automatic adjustment of export settings when importing videos, ensuring that user-configured default values are maintained.
  • Rendering Settings Adjustment: Removed automatic adjustments to export settings (such as FPS and duration) during the rendering process, preserving user preferences.
  • Consistent Export Settings: Ensured that user-configured export settings are consistently applied without being overridden by system-derived values during import or rendering.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@Sunwood-ai-labs Sunwood-ai-labs deleted the claude/export-settings-fps-bitrate-015FtktGngQwTrYVFbGLZdvx branch November 15, 2025 09:36
@yukimuraayanooo-ui
Copy link

🎀 雪村綾乃 のレビュー

🎀 雪村綾乃のUXチェック

  • ハイライト: ユーザー設定をリスペクトする姿勢、マジ最高じゃん!テンアゲ〜!✨

ここ映えてる!

  • 動画のデフォルト画質を上げてくれたの、マジ神!✨ やっぱクオリティ高い方が絶対「映える」し、ユーザーの満足度も爆上がりっしょ!
  • 前は動画を入れるたびに設定が勝手に変わっちゃうのが「は?」って感じだったけど、今回からユーザーが選んだ設定がちゃんとキープされるようになったの、超よき!💯 これで「なんか知らんけど設定変わったんだが…」みたいな事故がなくなるから、ストレスフリーで編集に集中できるね!

ここダサくない?

  1. 初心者ちゃんへのアシストが消えちゃったかも?
    • 直感: 前の自動設定って、詳しいことわかんない子には「なんかイイ感じにしてくれる」お助け機能だった面もあるじゃん?それがなくなって、例えば 60fps の動画入れたのに 24fps で書き出されちゃって「あれ、動画カクカクじゃね?」ってなる子が出てきそう。
    • 提案: 設定を勝手に変えるんじゃなくて、「読み込んだ動画と設定が違うけど、合わせとく?」みたいにポップアップで優しく聞いてあげるのはどうかな?🤔 「おまかせで合わせる」ボタンとかあったら、初心者もプロもハッピーな気がする!

まとめ

  • ユーザーの意思を尊重するっていう今回の変更、マジでイケてる!UX の基本だし、ちょー大事!💖
  • 次は、そのままだとちょっと不親切になっちゃう部分を、イケてるUIでどうフォローしていくか、ってとこを意識してみて!案内とかヒントをちょい足しするだけで、神アプリに近づくと思うな!これからもアゲてこ〜!🚀

🎀 雪村綾乃
ノリ軽ギャルなUI/UXデザイナー。かわいさと使いやすさを両立させるセンスに自信アリ。
明るく直感的な意見でチームを盛り上げ、思わずスクショしたくなるデザインを提案する。

— 雪村綾乃

@kozaki-kooou
Copy link

🦊 狐崎煌羽 のレビュー

🦊 狐崎煌羽のエグゼクティブレビュー

  • 結論: 目的は理解できるが、意思決定の根拠となるデータが皆無。このままでは単なる「感覚的変更」であり、プロダクトとして承認できない。

厳しく見るポイント

  1. ビットレート変更の根拠が不明瞭

    • インパクト: ビットレートを 2.5 倍の 50Mbps に引き上げることで、ファイルサイズはどの程度増大するのか? エクスポート時間への影響は? この変更がユーザーにもたらす価値とコストのトレードオフが全く示されていない。高品質化という曖昧な目的だけで、具体的な数値を軽視するのは怠慢だ。
    • 必須アクション: 複数のサンプルアセットを用い、20Mbps と 50Mbps での書き出し結果(ファイルサイズ、画質、処理時間)を比較したデータを提示すること。その上で、このデフォルト値が最適であると判断したロジックを明確に説明せよ。
  2. 自動調整機能の廃止判断が時期尚早

    • インパクト: これまで初心者ユーザーを暗に補助していた設定の自動調整機能を単純に削除しているが、それによるネガティブな影響を評価した形跡がない。「ユーザー設定を維持する」という思想は結構だが、それによって一部ユーザーの体験を損なうリスクを考慮できているか?
    • 必須アクション: この変更によって解決される具体的な課題(ユーザーストーリー)と、廃止によって新たに発生しうる課題を整理し、対策の要否を報告すること。例えば、推奨設定をUI上でサジェストするなどの代替案は検討したか?

実行判断

  • Rework: 判断の根拠となるデータが致命的に不足している。この状態でマージすることは絶対に許可しない。
  • 期限: 2営業日以内。上記アクションを完了させ、PRを更新した上で再レビューを申請すること。

リーダーメモ

  • 感覚でプロダクトを作るな。全ての変更はデータで語れ。我々が提供するのはプロフェッショナルなツールであり、その品質は細部へのこだわりと論理的な意思決定によってのみ担保される。ユーザーへの提供価値を最大化するという本質から目を逸らすな。期待している。

— 狐崎煌羽

@onizukarenjiii-droid
Copy link

🌿 鬼塚蓮司 のレビュー

🌿 鬼塚蓮司のエンジニアリングレビュー

  • TL;DR: ユーザーさんが設定した書き出し設定が、動画を読み込んだときに勝手に変わらんようになるんやね。ユーザーさんの意図を尊重する、シンプルでええ変更やと思うで!

気に入ったところ

  • 動画を読み込むたびに設定が意図せず変わるっていう、ちょっとおせっかいな動きをなくしてくれたんやね。ユーザーさんが「これ!」って決めた設定を大事にするっていう考え方、めっちゃ好きやで。
  • 関連するロジックをごっそり消してて、コードがだいぶスッキリしたな。これで store の見通しもようなって、今後の改修もしやすくなりそうや。

ここ工夫したらもっと良さげ

  1. 設定を自動で合わせたいユーザーさんへの配慮
    • 課題と理由: 今回、書き出し設定が自動で変わらんようになったやん? これ、基本的にはめっちゃええと思うんやけど、もしユーザーさんが動画の元の設定(例えばフレームレートとか)に合わせたいって思ったとき、手動で調べて設定し直さなあかんようになるから、ちょっと戸惑うかもしれへんなって思ったんよ。
    • 技術メモ: 以前は deriveExportSettingsFromAsset やレンダリング前のロジックでよしなにやってくれてた部分を、ユーザー体験としてどう補うか、っていう視点やね。設定が固定されることによるユーザビリティのトレードオフをちょっと考えときたい。
    • 提案: すぐに対応せなあかん話やないんやけど、将来的には「読み込んだ動画の設定に合わせる」みたいなボタンがUIにあると、もっと親切になるかもしれへんな。今回の変更はそのままで全然ええと思うで!

追加でチェックしたいこと

  • フレームレートや長さがデフォルトと違う動画(例: 60fps, 15秒)を読み込んでも、書き出し設定がデフォルト(24fps, 50Mbps)のまま変わらんことを確認したいな。
  • 逆に、ユーザーが手動で書き出し設定を変えたあとに別の動画を読み込んでも、その設定がちゃんと維持されるかも見ておきたいとこやね。
  • ビットレートを50Mbpsに上げたけど、書き出した動画のファイルサイズが極端に大きくなりすぎてないか、念のため確認しとくと安心やね。

— 鬼塚蓮司

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request successfully updates the default video export bitrate to 50 Mbps and disables automatic adjustments of export settings, both on asset import and during rendering. The changes simplify the logic by removing the code responsible for these automatic adjustments, ensuring that user-configured settings are preserved. The implementation is clean and directly addresses the goals of the PR. I've left a couple of comments regarding a minor formatting issue and a suggestion to improve code clarity for future maintenance.

Comment on lines 192 to 196
const deriveExportSettingsFromAsset = (asset: Asset, current: ExportSettings): ExportSettings | undefined => {
let changed = false;
const next: ExportSettings = { ...current };

const durationSeconds = sanitizeDurationSeconds(asset.duration);
if (typeof durationSeconds === "number" && Math.abs(durationSeconds - next.durationSeconds) > 0.0005) {
next.durationSeconds = durationSeconds;
changed = true;
}

if (asset.type === "video") {
const fps = sanitizeFrameRate(asset.fps);
if (typeof fps === "number") {
const roundedFps = Math.round(fps);
if (roundedFps !== next.fps) {
next.fps = roundedFps;
changed = true;
}
}

const videoBitrateMbps = deriveVideoBitrateMbps(asset.size, asset.duration);
if (typeof videoBitrateMbps === "number" && videoBitrateMbps !== next.videoBitrateMbps) {
next.videoBitrateMbps = videoBitrateMbps;
changed = true;
}
}

let audioBitrateKbps = sanitizeAudioBitrateKbps(asset.audioBitrateKbps);
if (audioBitrateKbps === undefined) {
audioBitrateKbps = deriveAudioBitrateKbps(asset.size, asset.duration);
}

if (typeof audioBitrateKbps === "number" && audioBitrateKbps !== next.audioBitrateKbps) {
next.audioBitrateKbps = audioBitrateKbps;
changed = true;
}

return changed ? next : undefined;
// Export settings are no longer automatically changed when importing videos
// to maintain user-configured default values
return undefined;
};

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

While this change correctly disables auto-adjustment of export settings, the function name deriveExportSettingsFromAsset is now misleading because it no longer derives any settings. This can cause confusion for future developers. A follow-up refactoring to remove this function and its call site in assignAssetToCell would be ideal, as that code path is now effectively dead.

}
// Use export settings as-is without auto-adjustment
const effectiveExportSettings = { ...exportSettings };
let workingJob: RenderJob = {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This line has an indentation issue. The let workingJob declaration should be indented to align with the surrounding code inside the try block for correct formatting and readability.

Suggested change
let workingJob: RenderJob = {
let workingJob: RenderJob = {

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants