Qual é o método mais rápido e que consome menos recursos para dividir um arquivo MP4?
Eu tentei o ffmpeg, mas recebi um erro:
$ ffmpeg -vcodec copy -ss 0 -t 00:10:00 -i /home/asafche/Videos/myVideos/MAH00124.MP4 /home/asafche/Videos/myVideos/eh.mp4
FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --extra-version=4:0.5.1-1ubuntu1.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.20. 1
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Mar 31 2011 18:53:20, gcc: 4.4.3
Seems stream 0 codec frame rate differs from container frame rate: 119.88 (120000/1001) -> 59.94 (60000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/asafche/Videos/myVideos/MAH00124.MP4':
Duration: 00:15:35.96, start: 0.000000, bitrate: 5664 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x720, 59.94 tbr, 59.94 tbn, 119.88 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16
Output #0, mp4, to '/home/asafche/Videos/myVideos/eh.mp4':
Stream #0.0(und): Video: libx264, yuv420p, 1280x720, q=2-31, 90k tbn, 59.94 tbc
Stream #0.1(und): Audio: 0x0000, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1
O que estou fazendo de errado e como divido corretamente um arquivo mp4?
video
file-format
Asaf Chertkoff
fonte
fonte
Respostas:
Com o ffmpeg, você pode dividir o arquivo usando o seguinte comando:
onde START está começando a posicionar em segundos ou no formato hh: mm: ss COMPRIMENTO é o comprimento do bloco em segundos ou no formato hh: mm: ss
Portanto, você precisará executar este comando algumas vezes, dependendo da duração do seu vídeo. Se digamos que seu vídeo tem 31 minutos de duração e você deseja dividi-lo em 15 minutos, aqui está como você o executa:
Existe um script python que você pode usar que faz isso automaticamente (ou seja, pega arquivo de vídeo, tamanho do bloco em segundos e gera arquivos de vídeo reproduzíveis individuais): http://icephoenix.us/notes-for-myself/auto-splitting-video -file-in-equal-chunks-with-ffmpeg-and-python /
fonte
Se você preferir usar uma interface gráfica, existe o avidemux disponível nos repositórios. Definir os pontos de corte é muito mais fácil dessa maneira!
Os marcadores de seleção definem a parte do vídeo que será exportada, usando "copiar" em áudio e vídeo para evitar a reencodificação. Você também pode escolher o container ou alterá-lo (avi, mp4, mkv etc.).
Fiz vários cortes em alguns vídeos de uma câmera e foi instantâneo!
fonte
Não sabe ao certo qual é sua necessidade, mas você pode digitar isso em um terminal: Para abrir um terminal, pressione Ctrl+ Alt+T
split -b 4M file.mp4 part_file
Isso dividirá os arquivos em pedaços de 4 megabytes. Para recriar o arquivo novamente, digite
cat part_file[a-c] > file.mp4
Observe que eu digiteiVou explicar com um exemplo.a-c
no suporte, porque a divisão criou 3 arquivos. no seu caso, talvez você precise ver mais.Isso mostra que eu tenho um único arquivo, de 9,3 MB. Para dividir, digito:
Após a divisão, recebo os arquivos como:
Observe os dois caracteres anexados ao nome do arquivo.
Para recuperar o arquivo:
fonte
Use mkvmerge do pacote mkvtoolnix. Use algo como
Isso dividiria seu arquivo em blocos de 1 GB. Você também pode usar indicações de tempo.
fonte
Se esta é uma parte 2 do MP4, com uma abordagem muito meticulosa, você pode continuar o arquivo sem codificador / decodificador. Esta resposta é destinada a pessoas com experiência em programação e um editor hexadecimal que desejam manter o arquivo "" intacto "".
A primeira parte do arquivo é um mdat, a segunda é um moov, contendo metadados usados pelo decodificador para localizar pedaços, que contêm amostras (imagens e sons codificados, não é importante saber). Depois, há STCO, STTS, STSC, etc. Isso é chamado de "átomos". Eles indicam qual é o deslocamento, comprimento, etc., de cada um dos pedaços. Se você fizer um trabalho limpo, poderá criar várias instâncias do seu vídeo e uma versão diferente com diferentes partes. O arquivo será reproduzido nos players e digerido nos sites de vídeo. Se você é um codificador, crie um analisador MP4 ou use um existente para acompanhar as partes e suas compensações. Isso ajudará você a saber mais sobre o formato e a reconstruir arquivos automaticamente.
fonte
O método mais fácil e infalível é usar o MP4Box:
# apt install gpac
$ MP4Box -split 15 /home/asafche/Videos/myVideos/MAH00124.MP4
(o parâmetro é tempo em segundos). Para outras possibilidades de divisão, por exemplo, por tamanho, consulte https://gpac.wp.imt.fr/mp4box/mp4box-documentation/ ouMP4Box -h general
A concatenação é igualmente simples.
fonte
Outra ferramenta GUI de código aberto , que pode dividir vídeos e fazer muito mais, é o freio de mão
Por exemplo, aqui estou dividindo meu vídeo em 24,53 (mm: ss) e também cortando o quadro no lado direito:
Você pode ver a visualização da saída facilmente - com o botão "Visualizar".
fonte