ffmpeg Qual è la differenza tra le opzioni -to e -t?


3

Comando

ffmpeg -ss 5:09 -i foo.mkv -to 5:10 -c copy bar.mkv

funziona esattamente come

ffmpeg -ss 5:09 -i foo.mkv -t 5:10 -c copy bar.mkv

è un insetto?

Utilizzo di Zeranoe git-bd75651 per Windows a 64 bit

>ffmpeg -version
ffmpeg version N-57906-gbd75651
built on Nov  4 2013 18:09:19 with gcc 4.8.2 (GCC)
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 -
-disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enabl
e-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --ena
ble-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmo
dplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enab
le-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis -
-enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxavs --enable-li
bxvid --enable-zlib
libavutil      52. 51.100 / 52. 51.100
libavcodec     55. 41.100 / 55. 41.100
libavformat    55. 21.100 / 55. 21.100
libavdevice    55.  5.100 / 55.  5.100
libavfilter     3. 90.101 /  3. 90.101
libswscale      2.  5.101 /  2.  5.101
libswresample   0. 17.104 /  0. 17.104
libpostproc    52.  3.100 / 52.  3.100

sorprendentemente, la pagina man non elenca a -to opzione. linux.die.net/man/1/ffmpeg
Frank Thomas

@FrankThomas Manpage assolutamente obsoleto ..
slhck

Risposte:


3

La vera risposta è che funziona come previsto. Il -ss l'opzione specificata prima dell'input consente a ffmpeg di cercare prima quella posizione e quindi avviare la codifica alle 00:00:00 come timestamp.

Ciò significa che non importa se si codifica per 5 minuti con -t o codificare fino a 00:05:00 con -to - perché hai iniziato alle 00:00:00.

Se si desidera iniziare con un timestamp successivo, tagliare il file usando -ss dopo -i. In questo modo, ffmpeg codificherà, ma inizierà l'uscita con il timestamp specificato, il che fa sì che le opzioni funzionino come tu aspettati che lo facciano.


wow, questo è un vero trucco! grazie a dio ho trovato la tua risposta abbastanza velocemente, avrei potuto perdere giorni a questo
georgiecasey

5

Da ffmpeg documentazione

'-T duration (output)' Interrompe la scrittura dell'output dopo la sua durata   raggiunge la durata. la durata può essere un numero in secondi, o in   hh: mm: ss [.xxx] modulo.

-to e -t si escludono a vicenda e -t ha la priorità.

'-Per posizione (uscita)' Interrompe la scrittura dell'uscita in posizione. posizione   può essere un numero in secondi, o in hh: mm: ss [.xxx] modulo.

-to e -t si escludono a vicenda e -t ha la priorità.


Non riesco ancora a capire perché entrambe le opzioni danno lo stesso risultato: 5:12 video di lunghezza
Vantuz

1
@Vantuz No, non è un bug, funzionano in modo simile ma la differenza -t smette di scrivere l'output dopo la durata prevista, mentre -to si fermerà in una posizione data
meda

-to ottiene la posizione relativamente al file di output? Quindi, c'è un modo in cui posso specificare come posizione del punto di arresto relativamente il file di input? Quindi, come ho potuto ottenere 1 minuto di video specificando 5:00 come punto di partenza e 6:00 come fine?
Vantuz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.