
Se eu tenho um vídeo, normalmente avi, mas pode ser qualquer um, e quero criar outro no mesmo formato mas apenas uma parte, a posiçãoeusegundos parafsegundos de vídeo, qual é o comando de uma linha para fazer isso?
Responder1
Isso pode ser feito usando mencoder
ou ffmpeg
.
codificador
Digamos que você queira recortar uma parte começando em 00:00:30 no arquivo original com duração de 5 segundos e que ela não deve ser recodificada (se você quiser recodificar terá que substituí-la copy
por áudio e codecs de vídeo, para obter uma lista de codecs de áudio disponíveis mencoder -oac help
, para obter uma lista de codecs de vídeo disponíveis mencoder -ovc help
), então você emite:
mencoder -ss 00:30:00 -endpos 00:00:05 -oac pcm -ovc copy originalfile -o newfile
Você terá que substituir orginalfile
e newfile
pelos nomes de arquivo reais, o último é o nome do arquivo que é criado para conter a parte recortada.
ffmpeg
Digamos que você queira cortar uma parte começando em 00:00:30 no arquivo original com duração de 5 segundos e que ela não deve ser recodificada (se você quiser recodificar você terá que substituir copy
com codecs de áudio e vídeo, para obter uma lista de codecs disponíveis ffmpeg -formats -E
), então você emite:
ffmpeg -ss 00:00:30 -i orginalfile -t 00:00:05 -vcodec copy -acodec copy newfile
Você terá que substituir orginalfile
e newfile
pelos nomes de arquivo reais, sendo o último o nome do arquivo criado para conter a parte recortada.
Para referência, consultehttp://lazyxiong-tech.blogspot.com/2007/05/using-mencoder-to-cut-out-pieces-of.htmle "7. Copie apenas uma parte do vídeo" emhttp://segfault.in/2010/10/ffmpeg-tricks-you-should-know-about/
Responder2
Você precisa cortar vídeo com recodificação ou sem modo de recodificação? Você pode tentar seguir o comando abaixo.
Sinopse: ffmpeg -i [arquivo_de_entrada] -ss [segundos_iniciais] -t [segundos_duração] [arquivo_saída]
use FFmpeg cut mp4 video sem recodificação
Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -c copy cut_video.mp4
use FFmpeg cut mp4 video com recodificação
Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -async 1 -strict -2 cut_video.mp4
Se você quiser cortar a seção desde o início, simplesmente solte -t 00:00:10
do comando
Responder3
kit médicoé um aplicativo de linha de comando muito simples como um wrapper ffmpeg
.
você pode cortar seu vídeo usando estes comandos:
medipack trim input.mp4 -s 01:04 -e 14:08 -o output.mp4
medipack trim input.mp4 -s 01:04 -t 13:04 -o output.mp4
você pode visualizar as opções do subcomando trim como:
srb@srb-pc:$ medipack trim -h
usage: medipack trim [-h] [-s START] [-e END | -t TIME] [-o OUTPUT] [inp]
positional arguments:
inp input video file ex: input.mp4
optional arguments:
-h, --help show this help message and exit
-s START, --start START
start time for cuting in format hh:mm:ss or mm:ss
-e END, --end END end time for cuting in format hh:mm:ss or mm:ss
-t TIME, --time TIME clip duration in format hh:mm:ss or mm:ss
-o OUTPUT, --output OUTPUT
você também pode explorar outras opções usandomedipack -h
srb@srb-pc:$ medipack --help
usage: medipack.py [-h] [-v] {trim,crop,resize,extract} ...
positional arguments:
{trim,crop,resize,extract}
optional arguments:
-h, --help show this help message and exit
-v, --version Display version number
você pode visitarhttps://github.com/srbcheema1/medipacke exemplos de checkout no README.
Responder4
Para ser mais preciso, você pode: Abrir MANUALMENTE o arquivo em um media player que irá avançar quadro a quadro (potplayer meu favorito, mas MPC-HC funciona) e reproduzir um arquivo AVISynth com dados como:
DirectShowSource(("C:\Downloads\Video\Do you want him.flv"), Pixel_Type="yuy2").Crop(0,0,-0,-0)
Subtitle("C:\Downloads\Video\Do you want him.flv", font="Arial", size=24, text_color=$ff0000, align=3)
ShowFrameNumber(scroll=true, x=336, y=27, font="Arial", size=24, text_color=$ff0000)
ShowTime(x=398, y=44, font="Arial", size=24, text_color=$ff0000)
Em seguida, corte com o formato de hora EXATO:
ffmpeg -i "Path\do you want him.flv" -ss 00:00:05.240 -to 00:00:08.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him1.flv"
e
ffmpeg -i "Path\do you want him.flv" -ss 00:00:10.240 -to 00:00:14.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him2.flv"
Caso queira participar, faça um arquivo txt com os arquivos de vídeo com conteúdos como:
file 'C:\Downloads\Video\Do you want him1.flv'
file 'C:\Downloads\Video\Do you want him2.flv'
Correr ffmpeg
:
ffmpeg -f concat -i FileList.txt -c copy "Path\NewName_joined.flv"
PROGRAMÁTICA Eu escrevi um programa mas não tenho nível 10 para mostrá-lo, desculpe