¿Qué hace que un video .mp4 sea válido?

¿Qué hace que un video .mp4 sea válido?

Estoy descargando consecutivamente algunos fragmentos de videos .ts de un sitio web y los guardo en el mismo archivo. Cuando intento subir este archivo a sitios como Twitter y Facebook, no lo acepta como un archivo válido. Cuando edito el archivo con ffmpeg, como en la línea siguiente, lo acepta.

ffmpeg -i old.mp4 -metadata mediatype='video' new.mp4

Abrí el archivo new.mp4 con un editor de texto y vi esto al principio:

\00\00\00 ftypisom\00\00\00isomiso2avc1mp41\00\00\00free\002\88mdat\00\00\AE\FF\FF\AA\DCE\E9\BD\E6\D9H\B7\96,\D8 \D9#\EE\EFx264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\00\80\00\002]e\88\84\00\BF\89\E0^-}\9F\C6\CF\C5\E2\E4\BEbc仇zBM\FD\B6\E4

¿Hay alguna manera de omitir el proceso de edición de ffmpeg y agregar alguna 'etiqueta', algún texto, algunos bytes al archivo que podrían convertirlo en un archivo de video 'válido'?

Por supuesto, intenté copiar los primeros bytes del nuevo (el ffmpeg editado) al antiguo, pero lo empeoró aún más (¿tal vez no sabía dónde dejar de copiar?), VLC ni siquiera puede reproducirlo ahora. Antes de editarlo, el archivo antiguo.mp4 se podía reproducir en VLC, pero con la marca de tiempo rota.

Además, ¡hay una gran diferencia de tamaño! old.mp4 tiene 6,4 MB mientras que new.mp4 tiene 3,4 MB...

Respuesta1

.tsLos archivos no son .mp4archivos.

Ejecute ffmpeg -i in.ts -c copy -movflags +faststart out.mp4para generar un MP4 válido.

información relacionada