video2.mp4
tem quadros-chave esparsos, enquanto o video1 tem um a cada 3 quadros, então converta assim,
ffmpeg -i video2.mp4 -g 3 -profile:v baseline -movflags +faststart+rtphint out.mp4
Para alguns antecedentes, estou criando uma página da Web que ajusta a posição de reprodução em um vídeo incorporado quando o usuário rola, portanto, se você rolar para baixo, o vídeo avançará e vice-versa. Isso funciona perfeitamente com um arquivo de vídeo, mas fica insuportavelmente em outro. Deve-se notar que eu não me importo com áudio, seria melhor se os arquivos não tivessem nenhum, na verdade.
Eu não sei muito sobre formatos de vídeo, mas aprendi muito nas últimas horas!
Então, esse é o arquivo de vídeo em funcionamento:
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --disable-jack --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.11.101
Duration: 00:00:20.38, start: 0.000000, bitrate: 5367 kb/s
Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 5199 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
Metadata:
handler_name : VideoHandler
timecode : 00:00:00:00
Stream #0:1(eng): Data: none (rtp / 0x20707472), 164 kb/s
Metadata:
handler_name : HintHandler
Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
Metadata:
handler_name : TimeCodeHandler
timecode : 00:00:00:00
E aqui está o que está atrasado:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video2.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isomiso2avc1mp41mp42
encoder : Lavf57.25.100
Duration: 00:00:19.20, start: 0.000000, bitrate: 7435 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 7206 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Data: none (rtp / 0x20707472), 225 kb/s (default)
Metadata:
creation_time : 2018-07-22T22:58:04.000000Z
handler_name : GPAC ISO Hint Handler
Como você pode ver no segundo, eu tentei adicionar um fluxo de dicas (via encoding.com) para melhorar a capacidade de resposta da reprodução, já que li que ajuda, mas sem sucesso.
Eu estou querendo saber se algum tipo de pessoa pode me ajudar a descobrir a diferença entre os dois arquivos, para que eu possa fazê-lo funcionar bem com os dois. Obrigado!
EDITAR
Aqui estão as saídas de ffmpeg -i <file>.mp4 -f null -
solicitadas nos comentários:
E aqui estão os registros de ffmpeg -discard nokey -copyts -i <file>.mp4 -vf showinfo -f null -
: