Tengo un FMS (Flash Media Server 4) que escribe las transmisiones de video en archivos .f4v. Hasta donde puedo ver y entender, solo escribe los datos de video/audio sin ningún contenedor, aunque podría estar equivocado. La URL contiene "mp4:", así que creo que podría ser un contenedor mpeg-4. Pero cuando lo abro en VLC no se reproduce y no muestra información del códec.
Entonces estoy pensando que tengo que envolverlo en un contenedor y necesito que sea lo más rápido posible y sin afectar los datos reales (es decir, no quiero transcodificarlos). Miré usando ffmpeg y mkvtoolnix, pero mkvtoolnix no puede manejar los datos en absoluto (produce un error) y logré convertirlo en un nuevo archivo usando ffmpeg, pero el resultado es un archivo más grande que tiene un extraño Pausa de 30 segundos al principio.
Estoy seguro de que hay una manera fácil de hacer esto, pero aún no la he encontrado.
Aquí está el resultado de ffprobe.exe:
C:\Program Files (x86)\ffmpeg\bin>ffprobe.exe time.f4v
ffprobe version N-31627-g9c2651a, Copyright (c) 2007-2011 the FFmpeg developers
built on Jul 23 2011 15:02:13 with gcc 4.6.1
configuration: --enable-gpl --enable-version3 --enable-memalign-hack --enable-runtime-cpudetect --
enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --en
able-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enabl
e-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 51. 11. 0 / 51. 11. 0
libavcodec 53. 9. 0 / 53. 9. 0
libavformat 53. 6. 0 / 53. 6. 0
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 27. 3 / 2. 27. 3
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 51. 2. 0 / 51. 2. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] multiple edit list entries, a/v desync might occur, patch welco
me
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] multiple edit list entries, a/v desync might occur, patch welco
me
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] multiple edit list entries, a/v desync might occur, patch welco
me
[mov,mp4,m4a,3gp,3g2,mj2 @ 003BA280] max_analyze_duration 5000000 reached at 5018000
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'time.f4v':
Metadata:
major_brand : f4v
minor_version : 0
compatible_brands: isommp42m4v
creation_time : 2016-11-13 05:20:19
Duration: 00:01:15.74, start: 0.000000, bitrate: 686 kb/s
Stream #0.0(eng): Video: h264 (Baseline), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], PAR 3:4 DAR 4:3,
59.94 tbr, 1k tbn, 119.88 tbc
Metadata:
creation_time : 2016-11-13 05:20:19
Stream #0.1(eng): Audio: mp3, 22050 Hz, mono, s16, 48 kb/s
Metadata:
creation_time : 2016-11-13 05:20:19
Stream #0.2(eng): Data: amf0 / 0x30666D61
Metadata:
creation_time : 2016-11-13 05:20:19
Unsupported codec with id 0 for input stream 2
El error que recibo de mkvtoolnix es:Error: Lector Quicktime/MP4: el tamaño de muestra constante y la duración variable aún no son compatibles. Póngase en contacto con el autor si tiene un archivo de muestra de este tipo.
Respuesta1
Después de descubrir las palabras clave adecuadas para poner en Google, encontré la solución:
C:\Archivos de programa (x86)\ffmpeg\bin>ffmpeg -i .f4v -acodec copiar -vcodec copiar -y .mkv
Sin embargo, mi archivo de salida es bastante malo, pero creo que puede estar más relacionado con mi archivo de entrada o con cómo ffmpeg lee ese formato.