Gặp lỗi kỳ lạ trong ffmpeg khi tìm kiếm, "không có POCs đã xác định vị trí", "mmco: lỗi không ngắn"

Aug 16 2020

Tôi đã thấy những người khác gặp sự cố nhưng tôi chưa thấy giải pháp. Nếu tôi cố gắng tìm kiếm với ffmpeg, tôi sẽ gặp một số lỗi và kết quả là video bị đóng băng ở một khung hình lúc đầu trước khi chuyển. Ngay cả khi tôi mở video trong VLC, tôi không thể tìm chính xác thời điểm sự cố xảy ra. Có vẻ như video bị lỗi bằng cách nào đó, nhưng nó chơi tốt, nó có thể được sửa chữa?

Nếu tôi thay đổi định dạng vùng chứa của đầu vào từ ts thành mp4, lỗi không xảy ra nhưng thay vì khung hình bị đóng băng, tôi có màn hình đen.

Toàn bộ lệnh và đầu ra:

$ 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

Trả lời

mikey_john Aug 16 2020 at 02:18

Đã giải quyết ... đầu tiên:

ffmpeg -i video.ts -c copy video.mp4

và sau đó thay vì:

ffmpeg -ss 5.5 -i video.mp4 -to 10 -avoid_negative_ts make_zero -vcodec libx264 -crf 23 -acodec copy output.ts

bạn làm:

ffmpeg -ss 5.5 -i video.mp4 -ss 0 -to 10 -avoid_negative_ts make_zero -vcodec libx264 -crf 23 -acodec copy output.ts