Skip to main content
Orux AIOruxAI

Orux AI / Notas sobre modelos

Kling v3: confira frames e planeje um corte de cinco segundos

Audite os 121 frames reais de um clipe Kling v3 a 24 fps. Com Python executável, CSV de timestamps e proposta para um espaço exato de 120 frames, sem exportar o vídeo.

Orux AIPublicado 11 min de leitura
Kling v3: confira frames e planeje um corte de cinco segundos — Audite os 121 frames reais de um clipe Kling v3 a 24 fps.
Neste artigo

Inspecione os frames decodificados antes de fechar uma edição de cinco segundos

Uma solicitação de cinco segundos não fornece informações suficientes para encaixar um clipe de Kling v3 em um espaço exato de 120 frames numa timeline de 24 fps. Inspecione o arquivo entregue. No exemplo existente da Orux de uma palheta de gaita analisado aqui, a duração solicitada é de cinco segundos, mas o MP4 salvo contém 121 frames de vídeo decodificados a 24 fps, com duração informada de 5.041667 segundos. Esse é um limite de edição a resolver, não uma prova, por si só, de falha na geração ou cobrança incorreta.

Para um editor montando uma inserção de detalhe mecânico, o material útil é um relatório de ingestão indexado por frame. O exemplo Python abaixo produz um CSV completo de timestamps e um plano de edição proposto: manter os frames 0–119, com indexação iniciada em zero, para o espaço de cinco segundos, e revisar o frame 120 separadamente. Ele não modifica nem exporta o vídeo. A fonte continua disponível abaixo para que você avalie tanto a ação visível quanto seu timing.

Frame real 72, em 3.000 segundos: uma pinça toca uma palheta de cobre no clipe salvo de Kling v3.
Frame real 72, em 3.000 segundos: uma pinça toca uma palheta de cobre no clipe salvo de Kling v3.

Frame real 72 da fonte, com tempo de apresentação de 3.000000 segundos. Ele foi extraído do exemplo existente do modelo, não é uma imagem recém-gerada.

O caso real de Kling v3 e suas configurações salvas

A fonte vem da página de Kling v3 na Orux. O caso salvo mostra uma pinça interagindo com uma palheta de cobre de gaita em um plano de detalhe extremo. Seu prompt original está preservado aqui:

维修者用细镊子轻拨一片铜簧片,簧片短暂振动后静止,超近距单镜头。

Tradução para os leitores: “Uma pessoa fazendo um reparo toca de leve uma palheta de cobre com uma pinça fina; a palheta vibra brevemente e depois fica imóvel, em um único plano de detalhe extremo.” Essa tradução explica a entrada salva; não foi um prompt diferente usado para uma nova geração.

As configurações armazenadas são duration: 5, aspect_ratio: "16:9", mode: "std", sound: "off" e kling_v3_type: "t2v". Não há entrada de imagem de referência registrada para esse caso. Não o descreva como um teste demonstrado de preservação de imagem em image-to-video. Nenhuma nova solicitação ao modelo foi feita para este artigo.

Vídeo original salvo de Kling v3: uma pinça interage com uma palheta de cobre de gaita em um plano de detalhe extremo, com som desligado.

Caso original salvo de Kling v3, solicitado com cinco segundos no modo std e som desligado. O arquivo auditado aqui tem 121 frames a 24 fps; não é uma nova geração para este artigo.

O formulário público atual, verificado em 3 de novembro de 2026, oferece durações de 3 a 15 segundos, proporções 16:9, 9:16 e 1:1, modos std/pro e som ligado/desligado. Essas opções descrevem a integração verificada da Orux. Esta análise não deduz controles nativos adicionais do modelo nem afirma que escolher outro modo corrigiria algum movimento visível.

O que seis frames selecionados mostram — e o que não podem provar

A fonte tem 1.280 × 720 pixels, e o arquivo inspecionado contém nenhum fluxo de áudio, em conformidade com a configuração salva de som desligado. Nos momentos selecionados, o enquadramento continua sendo um plano de detalhe dos dedos, da pinça e da palheta. Perto de três segundos, a forma visível da palheta muda ao redor do ponto de contato; nos frames selecionados posteriores, a ferramenta está afastada em relação àquela posição de contato.

Essas observações ajudam a decidir onde a ação deve entrar em uma edição. Elas não medem a frequência de vibração de uma palheta real, não comprovam precisão mecânica nem demonstram que todos os frames intermediários estão livres de artefatos. Uma imagem estática selecionada a cada segundo não permite comprovar um ciclo rápido de vibração. Assista ao clipe original e inspecione os frames intermediários relevantes antes de usá-lo como algo além de uma inserção ilustrativa.

Frame da fonte, com indexação iniciada em zeroTempo de apresentaçãoObservação editorial naquele ponto
00.000000 sEstabelece o plano de detalhe, com dedos e ferramenta perto da palheta
241.000000 sA ferramenta permanece perto da palheta; a área de trabalho continua visível
482.000000 sOutra referência da área de contato antes da mudança de posição mais visível
723.000000 sA palheta parece mais larga ou levantada ao redor da área de contato
964.000000 sA ferramenta está afastada em relação à posição de contato dos três segundos
1205.000000 sO último frame selecionado começa no limite de cinco segundos

Deslize para os lados para ver toda a tabela.

Seis frames da fonte com composição preservada em 0, 1, 2, 3, 4 e 5 segundos, identificados pelo índice de frame iniciado em zero.
Seis frames da fonte com composição preservada em 0, 1, 2, 3, 4 e 5 segundos, identificados pelo índice de frame iniciado em zero.

Frames da fonte 0, 24, 48, 72, 96 e 120 nos tempos de apresentação registrados. Os frames são mostrados com a composição inteira; os rótulos e o layout da folha de contato foram adicionados localmente.

Para outro tipo de decisão visual, a comparação de tomadas com o mesmo prompt em Kling 4.0 discute a escolha entre tomadas existentes. Aqui há apenas uma tomada salva; a questão é como o timing real de seus frames se encaixa em uma edição. Nenhum dos artigos transforma poucas observações em uma nota de confiabilidade para todo o modelo.

Diferencie o timestamp do último frame da duração do clipe

A exatos 24 fps, um intervalo de frame equivale a 1/24 de segundo, aproximadamente 0.041667 segundos. Um espaço de cinco segundos contém 120 intervalos de frame. Com indexação iniciada em zero e uma fonte que começa no tempo zero, os inícios dos frames são 0, 1/24, 2/24 e assim por diante até 119/24, ou 4.958333 segundos.

O próximo frame, de índice 120, começa em 5.000000 segundos. Incluir esse frame por mais um intervalo resulta em 121/24, aproximadamente 5.041667 segundos. Isso explica por que o último timestamp de apresentação e a duração informada do arquivo podem diferir sem se contradizer. Um espaço de timeline expresso pelo intervalo semiaberto [0, 5) exclui um frame cujo início acontece exatamente aos cinco segundos.

A auditoria verifica timestamps reais de apresentação, em vez de multiplicar uma indicação de taxa média e confiar no resultado. Ela verifica se cada timestamp decodificado segue a grade presumida de 24 fps com tolerância de dois microssegundos, considerando a representação com seis casas decimais retornada nesta execução. A tolerância é uma verificação de parsing para esta amostra, não um limiar de qualidade perceptiva.

Não reutilize a mesma aritmética sem análise em arquivos de taxa de frames variável ou em um projeto de 23.976 fps. Esses casos exigem outra política de timing. O código rejeita deliberadamente uma taxa média diferente e uma sequência de timestamps que não cumpra a hipótese de taxa constante. Sua saída é um plano de ingestão com escopo restrito, não uma ferramenta automática de conversão de taxa de frames.

Faça o orçamento das configurações solicitadas separadamente da auditoria do arquivo

As tarifas atuais da Orux abaixo foram verificadas em 3 de novembro de 2026. A conversão configurada é 1 Credit = USD 0.005. Os valores são por segundo gerado, para o modo e a configuração de som indicados. A coluna de cinco segundos é um planejamento aritmético para uma nova solicitação, não a cobrança histórica do exemplo salvo.

Configurações de Kling v3Tarifa atual da Orux / segundoSolicitação planejada de cinco segundos
std, som desligado — configuração do caso salvo16.00008 Credits (USD 0.0800004)80.0004 Credits (USD 0.400002)
pro, som desligado21.33336 Credits (USD 0.1066668)106.6668 Credits (USD 0.533334)
std, som ligado24.00024 Credits (USD 0.1200012)120.0012 Credits (USD 0.600006)
pro, som ligado32.00016 Credits (USD 0.1600008)160.0008 Credits (USD 0.800004)

Deslize para os lados para ver toda a tabela.

Este artigo não gerou nova cobrança de geração. Inspecionar um arquivo local existente, escrever um CSV e decidir quais frames manter não exige outra chamada ao modelo. Remover um frame na edição também não comprova direito a reembolso nem altera a cobrança histórica da geração. Não foi utilizado aqui um comprovante de cobrança do caso original; por isso, seus metadados de duração de 5.041667 segundos não devem ser apresentados como prova da quantidade de segundos cobrados.

Quando for necessária uma nova direção criativa, confirme as configurações atuais e a cotação da conta antes de solicitar outra tomada. Quando o único problema for encaixar um resultado aproveitável em um espaço exato, resolva primeiro a decisão de timeline. Consulte a documentação da API da Orux para detalhes de integração; este fluxo trata do arquivo entregue, não de mecanismos de polling ou novas tentativas de API.

Execute a auditoria de frames e preserve a fonte

Instale FFmpeg para que ffprobe esteja disponível na linha de comando e use Python 3.9 ou posterior. A documentação oficial de ffprobe explica a inspeção de fluxos, a contagem de frames decodificados e as informações por frame. O programa usa somente a biblioteca padrão do Python, além do executável local ffprobe.

Salve o vídeo existente do player incorporado ou da página do modelo como source.mp4 e salve o código a seguir como audit_clip.py. Execute python3 audit_clip.py source.mp4 em um diretório com permissão de escrita. Use o fluxo normal de acesso a vídeos do site; um downloader direto sem o contexto de solicitação esperado pelo site pode receber uma recusa de acesso da CDN. O próprio programa não baixa mídia, não acessa um endpoint do modelo nem usa chave de API.

Python
import csv
import hashlib
import json
import subprocess
import sys
from decimal import Decimal
from fractions import Fraction
from pathlib import Path

EXPECTED_SHA = '5c948c89baf54c46c85afe65c33636bebb8a6a79acc22eebcce2412aef3e5515'
SOURCE = Path(sys.argv[1] if len(sys.argv) > 1 else 'source.mp4')
TARGET_RATE = Fraction(24, 1)
TARGET_SECONDS = 5

def probe(*args):
    command = ['ffprobe', '-v', 'error', *args, '-of', 'json', str(SOURCE)]
    return json.loads(subprocess.run(command, check=True, capture_output=True, text=True).stdout)

def audit_timestamps(times, rate):
    if not times or rate <= 0:
        raise ValueError('missing frames or invalid rate')
    origin = times[0]
    for index, timestamp in enumerate(times):
        expected = origin + Decimal(index * rate.denominator) / rate.numerator
        if abs(timestamp - expected) > Decimal('0.000002'):
            raise ValueError('timestamps do not match the assumed constant rate')

def main():
    if hashlib.sha256(SOURCE.read_bytes()).hexdigest() != EXPECTED_SHA:
        raise ValueError('sample changed; inspect the new file before auditing')
    info = probe('-count_frames', '-show_entries',
                 'stream=index,codec_type,width,height,avg_frame_rate,nb_read_frames:format=duration')
    video = next(s for s in info['streams'] if s['codec_type'] == 'video')
    rate = Fraction(video['avg_frame_rate'])
    if rate != TARGET_RATE:
        raise ValueError('this example expects an exact 24 fps source')
    raw = probe('-select_streams', 'v:0', '-show_frames', '-show_entries',
                'frame=best_effort_timestamp_time')['frames']
    times = [Decimal(row['best_effort_timestamp_time']) for row in raw]
    audit_timestamps(times, rate)
    if int(video['nb_read_frames']) != len(times):
        raise ValueError('decoded frame counts disagree')
    target_count = TARGET_SECONDS * TARGET_RATE.numerator // TARGET_RATE.denominator
    if len(times) < target_count:
        raise ValueError('source is shorter than the target slot')
    with Path('frame-times.csv').open('w', newline='') as handle:
        writer = csv.writer(handle)
        writer.writerow(['zero_based_frame', 'presentation_seconds'])
        writer.writerows((i, str(t)) for i, t in enumerate(times))
    plan = {
        'width': video['width'], 'height': video['height'],
        'source_rate': str(rate), 'decoded_frames': len(times),
        'container_seconds': info['format']['duration'],
        'last_presentation_seconds': str(times[-1]),
        'audio_streams': sum(s['codec_type'] == 'audio' for s in info['streams']),
        'target_frames': target_count, 'keep_frames_inclusive': [0, target_count - 1],
        'last_kept_presentation_seconds': str(times[target_count - 1]),
        'frames_outside_slot': len(times) - target_count,
        'edit_applied': False,
    }
    Path('edit-plan.json').write_text(json.dumps(plan, indent=2) + '\n')
    print(json.dumps(plan, indent=2))

if __name__ == '__main__':
    main()

O resultado executado informa decoded_frames: 121, target_frames: 120, keep_frames_inclusive: [0, 119], frames_outside_slot: 1, last_kept_presentation_seconds: "4.958333" e edit_applied: false. O CSV gerado contém 121 linhas de dados, além do cabeçalho. O relatório também registra as dimensões de 1.280 × 720 pixels e zero fluxos de áudio.

Mantenha juntos o MP4 original, seu hash, o CSV de timestamps e o plano de edição. O hash fixado limita intencionalmente este exemplo reproduzível ao arquivo inspecionado. Para outra fonte autorizada, inspecione-a e revise deliberadamente o hash esperado e as hipóteses de timing; não remova verificações apenas para forçar um resultado aprovado. Este código carrega os metadados de cada frame na memória e foi projetado para um clipe curto, não para um arquivo de mídias longas.

Tome a decisão de edição explicitamente

Há duas decisões razoáveis para esta amostra. Preserve a fonte completa de 121 frames quando a sequência ao redor tiver espaço para sua duração aproximada de 5.041667 segundos, ou proponha os frames 0–119 para um espaço exato de 120 frames. A segunda opção é o plano gerado aqui. Nenhuma exportação aparada é fornecida ou alegada.

Antes de aplicar esse plano em um editor, examine os frames 119 e 120 da fonte e toda a ação ao redor deles. Confirme que o ponto de saída escolhido não remove uma posição final relevante, não cria um salto involuntário nem entra em conflito com uma tomada vizinha. Se o projeto exigir uma pausa final mais longa, o espaço existente de cinco segundos pode simplesmente ser a restrição criativa errada. Uma contagem de frames não pode tomar essa decisão artística por você.

Depois de aplicar uma edição ou exportação no seu próprio fluxo, inspecione o novo arquivo novamente. O relatório da fonte não certifica o timing, o áudio ou a qualidade de imagem de uma exportação posterior. O resultado prático aqui é uma entrega auditável: fonte conhecida, timestamps medidos, intervalo de frames proposto explicitamente e uma separação clara entre revisão criativa, duração na timeline e custo de geração.

FAQ

Uma solicitação de cinco segundos sempre retorna 121 frames?

Nenhuma regra geral é estabelecida aqui. Este arquivo específico salvo de Kling v3 contém 121 frames decodificados a 24 fps. Inspecione cada arquivo entregue em vez de tratar o comportamento de limite desta amostra como uma garantia de todo o modelo.

Quais frames cabem no espaço exato de cinco segundos deste exemplo?

Os frames 0 a 119 cabem no espaço definido de 120 frames a 24 fps. O frame 119 começa em 4.958333 segundos; o frame 120 começa em 5.000000 segundos e fica fora de [0, 5). O código propõe esse intervalo sem aplicar uma edição.

O frame extra prova que fui cobrado por tempo adicional?

Não. A duração do arquivo, sozinha, não estabelece a base de cobrança nem o valor histórico cobrado. A tabela de preços é um cálculo de planejamento datado para as configurações solicitadas; não foi inspecionado um comprovante de cobrança do caso salvo.

A folha de contato prova que a palheta vibra corretamente?

Não. Ela mostra posições selecionadas e a posição da ferramenta, não uma vibração física medida. Inspecione o movimento original para decidir sua adequação editorial e não use esse clipe gerado como prova de precisão mecânica.

A auditoria gerou ou modificou um vídeo?

Não. Ela inspecionou o MP4 existente e escreveu um CSV de timestamps e um JSON com o plano de edição proposto. Não fez chamadas pagas ao modelo e não forneceu exportação aparada, conversão de taxa de frames ou nova trilha sonora.

Experimente página de Kling v3 na Orux na Orux AIExecute online e veja preços e exemplos de API na página do modelo.Abrir modelo

Use estes modelos com uma única API

Uma API compatível com OpenAI para modelos de chat, imagem, vídeo e áudio, cobrada em Credits.

Artigos relacionados

Ver todos os artigos →