Extrai parte de um vídeo com um comando de uma linha

58

Se eu tiver um vídeo, normalmente avi, mas poderia ser qualquer, e eu quero criar outro no mesmo formato, mas apenas uma parte, a posição i segundos para f segundos no vídeo, qual é o comando de uma linha para fazer isso?

    
por Strapakowsky 31.08.2011 / 09:36

3 respostas

85

Isso pode ser feito usando mencoder e ffmpeg .

mencoder

Digamos que você queira recortar uma peça começando às 00:00:30 no arquivo original com 5 segundos de duração e que ela não deve ser reencodificada (se você quiser recodificá-la, precisará substitua copy por codecs de áudio e vídeo, para obter uma lista de emissão de codecs de áudio disponíveis mencoder -oac help , para obter uma lista de codecs de vídeo disponíveis com problema mencoder -ovc help ), você emite:

mencoder -ss 00:30:00 -endpos 00:00:05 -oac copy -ovc copy originalfile -o newfile

Você terá que substituir orginalfile e newfile pelos nomes de arquivos reais, o mais recente é o nome do arquivo criado para conter a parte cortada.

ffmpeg

Digamos que você queira recortar uma peça começando às 00:00:30 no arquivo original com uma duração de 5 segundos e que ela não deve ser recodificada (se você quiser recodificá-la, tem que substituir copy por codecs de áudio e vídeo, para uma lista de codecs disponíveis em questão 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 arquivos reais, o mais recente é o nome do arquivo criado para conter a parte cortada.

Para referência, consulte link e "7. Copie apenas uma parte do vídeo" no link

    
por N.N. 31.08.2011 / 10:23
17

Você precisa cortar o vídeo com recodificação ou sem o modo de recodificação? Você pode tentar seguir o comando abaixo.

Sinopse: ffmpeg -i [input_file] -ss [start_seconds] -t [duration_seconds] [output_file]

use o FFmpeg para cortar vídeo mp4 sem recodificar

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -c copy cut_video.mp4

use FFmpeg para cortar vídeo mp4 com re-encoding

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 começo, simplesmente solte -t 00:00:10 do comando

    
por Ben Wong 04.01.2016 / 07:33
-1

Para ser mais preciso, você pode: MANUALMENTE Abra 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 EXACT:

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"

Se você deseja participar, faça um arquivo txt com os arquivos de vídeo com conteúdo como:

file 'C:\Downloads\Video\Do you want him1.flv'

file 'C:\Downloads\Video\Do you want him2.flv'

Executar ffmpeg :

ffmpeg -f concat -i FileList.txt -c copy "Path\NewName_joined.flv"

PROGRAMMENTEMENTE Eu escrevi um programa mas não tenho nível 10 para mostrar, desculpe

    
por Budman1 04.09.2014 / 07:55