Obteniendo errores extraños en ffmpeg al buscar, "POCs ubicados conjuntamente no disponibles", "mmco: falla corta sin referencia"
He visto que otras personas tienen el problema, pero no he visto una solución. Si trato de buscar con ffmpeg, obtengo algunos errores y el video resultante se congela en un cuadro al principio antes de moverse. Incluso si abro el video en VLC, no puedo buscar ese punto exacto en el que ocurre el problema. Parece que el video está dañado de alguna manera, pero se reproduce bien, ¿se puede arreglar?
Si cambio el formato del contenedor de la entrada de ts a mp4, el error no ocurre pero en lugar del marco congelado tengo una pantalla negra.
Comando y salida completos:
$ ffmpeg -ss 5.5 -i video.ts -to 10 -avoid_negative_ts make_zero -vcodec libx264 -crf 23 -acodec copy output.ts
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3_1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mpegts, from 'video.ts':
Duration: 00:32:50.07, start: 1.407811, bitrate: 2227 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 117 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[h264 @ 0x7fa933003c00] co located POCs unavailable
[h264 @ 0x7fa933001800] mmco: unref short failure
[h264 @ 0x7fa931800000] co located POCs unavailable
[h264 @ 0x7fa933003c00] mmco: unref short failure
[libx264 @ 0x7fa932801000] using SAR=1/1
[libx264 @ 0x7fa932801000] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fa932801000] profile High, level 3.1
Output #0, mpegts, to 'output.ts':
Metadata:
encoder : Lavf58.20.100
Stream #0:0: Video: h264 (libx264), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 90k tbn, 25 tbc
Metadata:
encoder : Lavc58.35.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 117 kb/s
frame= 236 fps= 38 q=-1.0 Lsize= 2974kB time=00:00:09.98 bitrate=2439.3kbits/s speed=1.62x
video:2559kB audio:165kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.200110%
[libx264 @ 0x7fa932801000] frame I:4 Avg QP:20.49 size: 56038
[libx264 @ 0x7fa932801000] frame P:115 Avg QP:22.34 size: 15286
[libx264 @ 0x7fa932801000] frame B:117 Avg QP:24.56 size: 5452
[libx264 @ 0x7fa932801000] consecutive B-frames: 18.2% 44.1% 8.9% 28.8%
[libx264 @ 0x7fa932801000] mb I I16..4: 26.5% 32.9% 40.6%
[libx264 @ 0x7fa932801000] mb P I16..4: 7.4% 12.8% 3.4% P16..4: 30.6% 8.0% 4.0% 0.0% 0.0% skip:33.8%
[libx264 @ 0x7fa932801000] mb B I16..4: 1.5% 2.3% 1.1% B16..8: 20.9% 4.1% 0.6% direct: 3.1% skip:66.4% L0:38.0% L1:58.6% BI: 3.4%
[libx264 @ 0x7fa932801000] 8x8 transform intra:50.8% inter:63.0%
[libx264 @ 0x7fa932801000] coded y,uvDC,uvAC intra: 40.3% 71.6% 31.3% inter: 9.5% 21.8% 1.4%
[libx264 @ 0x7fa932801000] i16 v,h,dc,p: 42% 35% 15% 8%
[libx264 @ 0x7fa932801000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 25% 27% 4% 3% 3% 5% 3% 6%
[libx264 @ 0x7fa932801000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 27% 15% 6% 6% 5% 7% 5% 6%
[libx264 @ 0x7fa932801000] i8c dc,h,v,p: 42% 28% 22% 8%
[libx264 @ 0x7fa932801000] Weighted P-Frames: Y:4.3% UV:4.3%
[libx264 @ 0x7fa932801000] ref P L0: 74.0% 13.6% 9.5% 2.9% 0.1%
[libx264 @ 0x7fa932801000] ref B L0: 85.0% 13.2% 1.8%
[libx264 @ 0x7fa932801000] ref B L1: 98.3% 1.7%
[libx264 @ 0x7fa932801000] kb/s:2220.26
Respuestas
Resuelto ... primero:
ffmpeg -i video.ts -c copy video.mp4
y luego en lugar de:
ffmpeg -ss 5.5 -i video.mp4 -to 10 -avoid_negative_ts make_zero -vcodec libx264 -crf 23 -acodec copy output.ts
tú lo haces:
ffmpeg -ss 5.5 -i video.mp4 -ss 0 -to 10 -avoid_negative_ts make_zero -vcodec libx264 -crf 23 -acodec copy output.ts