Perché "basta mettere in pausa e fare screenshot" fallisce

L'approccio più ovvio è mettere in pausa la riproduzione e premere il tasto screenshot di sistema. Funziona, fino al momento in cui il risultato conta.

Una cattura dello schermo registra ciò che visualizza mostrato, non ciò che contiene il file. Ciò significa che la risoluzione reale del video è stata ridimensionata in base alle dimensioni della finestra del lettore, i colori sono passati attraverso la pipeline di visualizzazione e qualsiasi sovrapposizione (sottotitoli, controlli del lettore, cursore del mouse) è stata inserita nell'immagine. Cattura una clip 4K riprodotta in una finestra di 900 pixel di larghezza e avrai definitivamente eliminato tre quarti dei dettagli.

C'è anche un problema di precisione. La pausa ti porta nel punto in cui il giocatore si è fermato, che di solito non è il fotogramma che volevi. A 30 fps ogni fotogramma dura 33 millisecondi; a 60 fps, 17. Nessuno ne raggiunge uno specifico toccando la barra spaziatrice.

Entrambi i metodi seguenti risolvono gli stessi due problemi: salvano alla risoluzione originale e ti consentono di spostare un fotogramma alla volta anziché indovinare.

Metodo 1: VLC

VLC ha due funzionalità separate qui, e scegliere quella sbagliata è il motivo solito per cui le persone lo trovano imbarazzante.

Istantanea: per catturare un fotogramma

Questo è quello che desideri per un singolo fotogramma. Riproduci il video, approfondisci il momento, quindi:

  • Windows / Linux: Shift + S, o Video → Scatta istantanea
  • macOS: Cmd + Alt + S, o Video → Scatta istantanea

L'istantanea viene scritta con la risoluzione originale, non con le dimensioni della finestra: questo è il vantaggio principale rispetto all'acquisizione dello schermo. Imposta prima la destinazione e il tipo di file in Strumenti → Preferenze → Video → Istantanee video, dove puoi scegliere la directory, il formato (PNG o JPG) e il prefisso del nome file. Lascia il formato su PNG se l'immagine si avvicina a un editor.

Per arrivare al fotogramma giusto, fai un passo invece di scorrere. Il E il tasto avanza esattamente di un fotogramma mentre è in pausa. VLC non ha scorciatoie da tastiera per scorrere indietro — se superi i limiti, devi tornare indietro di un secondo e fare di nuovo un passo avanti, che è la parte più irritante del flusso di lavoro.

Filtro scena: per catturare molti fotogrammi

Funzionalità diverse, scopo diverso: scrive un'immagine automaticamente durante la riproduzione. Il percorso completo è Strumenti → Preferenze, quindi cambia Mostra impostazioni da "Semplice" a Tutto in basso a sinistra — il filtro è invisibile nella visualizzazione semplice — quindi Video → Filtri → Filtro scena.

Le impostazioni che contano:

  • Formato immaginepng o jpg.
  • Prefisso del percorso della directory — dove finiscono i file. Se questo percorso non esiste o non è scrivibile, l'estrazione fallisce silenziosamente senza alcun errore. Questo è il motivo principale per cui le persone segnalano "il filtro scena non fa nulla".
  • Rapporto di registrazione — salva un'immagine ogni N frame decodificati. Su una sorgente a 30 fps, un rapporto di 30 dà all'incirca un'immagine al secondo; un rapporto di 1 salva ogni singolo fotogramma e riempie rapidamente un disco.

Quindi - e questo è il passaggio che tutti perdono - torna a Video → Filtri nella stessa visualizzazione "Tutto" seleziona invece Filtro video scena nell'elenco. La configurazione del filtro non lo abilita. Salva, riavvia VLC e riproduci il file; i fotogrammi vengono scritti solo durante la riproduzione effettiva del video.

Metodo 2: in un browser

Il strumento fotogramma per fotogramma è costruito attorno al caso del fotogramma singolo, quindi il problema dello stepping viene gestito direttamente.

  1. Rilascia il video. Non viene caricato nulla; il file viene letto dal disco nella pagina.
  2. Imposta FPS di origine in modo che corrisponda al tuo filmato. Questo campo decide di quanto si sposta un singolo passaggio. Il valore predefinito è 30; se la clip è a 24, 25, 50 o 60 fps, modificala prima di procedere. L'interfaccia mostra la dimensione del passo risultante: a 30 fps, Step 0.0333s — così puoi verificare che sia corretta.
  3. Cerca approssimativamente, quindi procedi con precisione. Utilizza lo strumento di pulizia del lettore per ottenere in un secondo, quindi Frame precedente / Frame successivo per raggiungere quello esatto. Lo stepping funziona in entrambe le direzioni, che è la differenza pratica rispetto al solo forward E.
  4. Controlla il timestamp lettura. Mostra la posizione corrente al millisecondo, così puoi registrare esattamente quale fotogramma hai scattato: utile quando l'immagine è la prova per una segnalazione di bug o una nota di revisione.
  5. Fai clic su Salva frame corrente. L'immagine è scritta alla risoluzione nativa del video, senza chrome del player e senza sovrapposizioni.

Trovare la frequenza fotogrammi sorgente: in VLC è sotto Strumenti → Informazioni sul codec. Su macOS, Ottieni informazioni nel Finder lo mostra. In caso contrario, fai un passo avanti dieci volte e osserva il timestamp: se avanza di 0,333 s in totale sei a 30 fps, 0,4 s significa 25 fps, 0,167 s significa 60.

Tre cose che vanno storte

1. Il fotogramma salvato non è quello che stavi guardando

Comune con le istantanee VLC su alcune build e configurazioni di decodifica hardware: l'immagine viene scritta dall'output corrente del decoder, che può essere un fotogramma o due prima di ciò che viene mostrato sul display. In una ripresa statica nessuno se ne accorge. In movimento veloce (una palla, una ruota, una mano) la differenza è il punto centrale dell'acquisizione.

La soluzione alternativa in VLC è mettere prima in pausa, procedere con E al fotogramma che desideri, e solo dopo scatta l'istantanea; un decodificatore in pausa e una visualizzazione in pausa concordano. Nello strumento del browser il fotogramma salvato viene letto dallo stesso elemento video in pausa che stai guardando, quindi quello che vedi è ciò che è scritto.

2. Lo stepping produce la stessa immagine due volte

Quasi sempre una mancata corrispondenza del frame-rate. Se FPS di origine è impostato su 60 ma la clip in realtà è 30, ogni "passo" avanza di mezzo fotogramma, quindi due passaggi consecutivi finiscono all'interno dello stesso fotogramma e l'immagine non cambia. Sintomo: il timestamp si sposta ma l'immagine no.

L'errore inverso è peggiore perché è silenzioso: imposta 30 su una clip da 60 fps e ogni passaggio salta un fotogramma. Niente sembra rotto, semplicemente non vedi mai metà del filmato, incluso, molto probabilmente, il fotogramma che stavi cercando. Imposta il valore correttamente prima di iniziare.

3. L'output è più piccolo del video

Se un fotogramma salvato esce a 1280×720 da una fonte 4K, quasi sicuramente hai acquisito una cattura dello schermo anziché un'esportazione del fotogramma reale. Controlla le dimensioni in pixel del file rispetto alla fonte: Strumenti → Informazioni sul codec in VLC fornisce la risoluzione reale.

L'istantanea di VLC ha un'impostazione correlata che vale la pena conoscere: in Preferenze → Video → Istantanee video, un diverso da zero Larghezza istantanee video forza un ridimensionamento. Lasciarlo a 0 per preservare la risoluzione sorgente. Lo strumento del browser scrive sempre alla risoluzione nativa, senza impostazioni equivalenti che possano sbagliare.

Quando VLC è la scelta migliore

  • Il video è già aperto in VLC. Se stai guardando qualcosa e vuoi un'immagine, Shift + S è più veloce di qualsiasi cosa coinvolga un'altra applicazione.
  • Codec che un browser non decodificherà. VLC riproduce essenzialmente tutto: ProRes, MKV con audio insolito, strutture DVD, file danneggiati. Se il browser non riesce a riprodurlo, non può estrarlo.
  • Stream e origini di rete. VLC può scattare istantanee da un feed di telecamera RTSP o da un flusso di rete; uno strumento di file locale non può.
  • Catturazioni lunghe e non presidiate. Il filtro scena scriverà felicemente i fotogrammi attraverso una registrazione di due ore senza limite di memoria. Una scheda del browser conserva i frame nella RAM e non lo farà.

Lo strumento browser è la soluzione migliore quando è necessario fare un passo indietro così come in avanti, quando si desidera che il timestamp venga registrato insieme all'immagine fissa, quando il filmato è abbastanza confidenziale da preferire che non lasciasse mai la macchina e quando si preferisce non riavviare un'applicazione per modificare un'impostazione.

Riferimento rapido

Attività VLC Strumento browser
Salva un fotogramma Shift + S (Cmd + Alt + S su Mac) Salva frame corrente
Vai avanti di un fotogramma E Frame successivo
Vai indietro di un fotogramma Non disponibile Frame precedente
Visualizza il timestamp esatto Tempo di riproduzione, solo pochi secondi Lettura in millisecondi
Scegli la cartella di output Preferenze → Istantanee video Posizione di download del browser
Cattura molti fotogrammi automaticamente Filtro scena + rapporto di registrazione Intervallo estrazione
Configurazione prima del primo utilizzo Configurazione filtro + abilita + riavvia Nessuno
Stream e videocamere di rete Supportato Solo file locali
Codec insoliti Quasi tutto Solo ciò che il browser decodifica
Cattura incustodita per ore Fine Limitato dalla memoria della scheda

Per un singolo fotogramma l'intero lavoro si riduce a due cose: ottenere il frame rate è corretto, quindi lo stepping significa ciò che pensi significhi e salva dal decoder anziché dallo schermo. Tutto il resto dipende da quale finestra hai aperto.