Alguma desvantagem de sempre usar o parâmetro faststart -movflags?

5

Parece que muitos sites como o YouTube sugerem átomo do moov na frente do arquivo (Início rápido) .

O ffmpeg não faz disso um comportamento padrão, mas você pode especificá-lo com a opção -movflags faststart . Eu estou querendo saber se existe alguma desvantagem em sempre usar esse parâmetro?

    
por Sun 23.12.2014 / 16:46

3 respostas

8

Dependendo do tamanho da entrada, pode levar algum tempo para realizar a segunda passagem para mover o moov atom para o início do arquivo.

Sem -movflags +faststart

$ time ffmpeg -y -f lavfi -i nullsrc=s=hd720:d=600 -preset ultrafast out.mp4
real    0m42.701s

com -movflags +faststart

$ time ffmpeg -y -f lavfi -i nullsrc=s=hd720:d=600 -movflags +faststart -preset ultrafast out.mp4
real    1m4.036s
  • Você deve usar +faststart em vez de apenas faststart , porque ele será adicionado a qualquer sinalizador padrão / outro / existente em vez de desatá-los (mas nunca testei isso).

  • É verdade que, usando nullsrc não foi a melhor entrada, pois pode não criar uma saída consistente, mas eu estava impaciente e queria algo rápido, mas dinâmico o suficiente para fornecer um arquivo considerável (mas eu não queria ruído puro). Além disso, fiz apenas um teste por comando, por isso, é um tamanho de amostra baixo. Independentemente disso, a diferença de horário é óbvia.

por 23.12.2014 / 20:07
2

Eu acho que esse segmento precisa de uma atualização. No último ffmpeg (3.4.1) eu recebo:

$ time ffmpeg -y -f lavfi -i nullsrc=s=hd720:d=600 -preset ultrafast out.mp4
real 0m26.578s
$ time ffmpeg -y -f lavfi -i nullsrc=s=hd720:d=600 -movflags +faststart -preset ultrafast out.mp4
real 0m26.849s

Mesmos resultados. Agora tente com um vídeo real:

$ time ffmpeg -y -i Sintel.2010.1080p.mp4 -preset:v ultrafast out.mp4
real 3m38.829s
$ time ffmpeg -y -i Sintel.2010.1080p.mp4 -preset:v ultrafast -movflags +faststart out.mp4
real 3m43.674s

Cerca de 2% de diferença, isso pode ser apenas ruído. Também é necessário observar que a fase "Iniciando a segunda passagem: mover o átomo de moov para o início do arquivo" não demorou mais que alguns segundos no arquivo de saída de 600Mb.

    
por 02.02.2018 / 12:43
1

Como você já deve saber, as informações necessárias para gravar o átomo moov ou mesmo saber seu tamanho não estarão disponíveis até que o arquivo inteiro seja processado.

As desvantagens de ter o átomo moov no início e a razão pela qual muitas ferramentas não o fazem por padrão estão, portanto, relacionadas a esse fato.

Se nenhum dos itens a seguir for um problema para você, você pode colocar o moov na frente e não ter inconvenientes.

  • A segunda passagem é obrigatória. Isso duplica a quantidade de E / S de disco, pois os dados devem ser lidos da entrada, gravados no disco, lidos do disco e reescritos. Isso pode ser impraticável quando a velocidade de E / S é muito lenta, como ao gravar em uma unidade de rede.

  • A saída não pode ser canalizada para outro comando / enviada para stdout na hora, porque esses mecanismos não têm como fazer uma segunda passagem.

por 17.03.2016 / 04:06

Tags