我使用ffmpeg从TS文件生成图像,并在某些地方生成绿色图像。我检查了几个ffmpeg版本。问题再现了 3.3.3,2.8.11,2.7.7,但不是2.6.9。 可能是什么原因?
例如,2.8.11的输出:
$ ffmpeg -ss 00:42:20 -i video.ts -frames:v 1 out_42_20.jpg -loglevel debug ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609 configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-dhroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enab-enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable--enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enpy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-linable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enab83 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Splitting the commandline. Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '00:42:20'. Reading option '-i' ... matched as input url with argument 'video.ts'. Reading option '-frames:v' ... matched as option 'frames' (set the number of frames to output) with argument '1'. Reading option 'out_42_20.jpg' ... matched as output url. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'. Finished splitting the commandline. Parsing a group of options: global . Applying option loglevel (set logging level) with argument debug. Successfully parsed a group of options. Parsing a group of options: input url video.ts. Applying option ss (set the start time offset) with argument 00:42:20. Successfully parsed a group of options. Opening an input file: video.ts. [mpegts @ 0x22ba400] Format mpegts probed with size=2048 and score=100 [mpegts @ 0x22ba400] stream=0 stream_type=1b pid=1e1 prog_reg_desc= [mpegts @ 0x22ba400] stream=1 stream_type=f pid=1e2 prog_reg_desc= [mpegts @ 0x22ba400] stream=2 stream_type=6 pid=1e3 prog_reg_desc= [mpegts @ 0x22ba400] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 [h264 @ 0x22be840] no picture [mpegts @ 0x22ba400] max_analyze_duration 5000000 reached at 5000000 microseconds st:0 [mpegts @ 0x22ba400] stream 0 : no PTS found at end of file, duration not set [mpegts @ 0x22ba400] After avformat_find_stream_info() pos: 0 bytes read:4026800 seeks:3 frames:550 Input #0, mpegts, from 'video.ts': Duration: 02:15:27.97, start: 1.079989, bitrate: 4983 kb/s Program 1 Stream #0:0[0x1e1], 216, 1/90000: Video: h264 (High), 4 reference frames ([27][0][0][0] / 0x001B), yuv420p(left), 1920x1080 (1920x1088)R 16:9], 1/50, 25 fps, 50 tbr, 90k tbn, 50 tbc Stream #0:1[0x1e2](und), 203, 1/90000: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 127 kb/s Stream #0:2[0x1e3](und), 131, 1/90000: Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, 5.1(side), fltp, 384 kb/s Successfully opened the file. Parsing a group of options: output url out_42_20.jpg. Applying option frames:v (set the number of frames to output) with argument 1. Successfully parsed a group of options. Opening an output file: out_42_20.jpg. Successfully opened the file. detected 1 logical cores [graph 0 input from stream 0:0 @ 0x22ba280] Setting 'video_size' to value '1920x1080' [graph 0 input from stream 0:0 @ 0x22ba280] Setting 'pix_fmt' to value '0' [graph 0 input from stream 0:0 @ 0x22ba280] Setting 'time_base' to value '1/90000' [graph 0 input from stream 0:0 @ 0x22ba280] Setting 'pixel_aspect' to value '1/1' [graph 0 input from stream 0:0 @ 0x22ba280] Setting 'sws_param' to value 'flags=2' [graph 0 input from stream 0:0 @ 0x22ba280] Setting 'frame_rate' to value '25/1' [graph 0 input from stream 0:0 @ 0x22ba280] w:1920 h:1080 pixfmt:yuv420p tb:1/90000 fr:25/1 sar:1/1 sws_param:flags=2 [format @ 0x2328360] compat: called with args=[yuvj420p|yuvj422p|yuvj444p] [format @ 0x2328360] Setting 'pix_fmts' to value 'yuvj420p|yuvj422p|yuvj444p' [auto-inserted scaler 0 @ 0x2326600] Setting 'flags' to value 'bicubic' [auto-inserted scaler 0 @ 0x2326600] w:iw h:ih flags:'bicubic' interl:0 [format @ 0x2328360] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format' [AVFilterGraph @ 0x2327ba0] query_formats: 5 queried, 3 merged, 1 already done, 0 delayed [auto-inserted scaler 0 @ 0x2326600] picking yuvj420p out of 3 ref:yuv420p alpha:0 [swscaler @ 0x2310660] deprecated pixel format used, make sure you did set range correctly [auto-inserted scaler 0 @ 0x2326600] w:1920 h:1080 fmt:yuv420p sar:1/1 -> w:1920 h:1080 fmt:yuvj420p sar:1/1 flags:0x4 [mjpeg @ 0x2327620] Forcing thread count to 1 for MJPEG encoding, use -thread_type slice or a constant quantizer if you want to use multipl [mjpeg @ 0x2327620] intra_quant_bias = 96 inter_quant_bias = 0 Output #0, image2, to 'out_42_20.jpg': Metadata: encoder : Lavf56.40.101 Stream #0:0, 0, 1/25: Video: mjpeg, 1 reference frame, yuvj420p(pc, left), 1920x1080 [SAR 1:1 DAR 16:9], 1/25, q=2-31, 200 kb/s, 25 fps tbc Metadata: encoder : Lavc56.60.100 mjpeg Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) Press [q] to stop, [?] for help [h264 @ 0x232a040] Missing reference picture, default is 0 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 0 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 0 [h264 @ 0x232a040] decode_slice_header error timestamp discontinuity 0, new offset= -2541079989 [h264 @ 0x232a040] no picture [h264 @ 0x232a040] illegal short term buffer state detected [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] Missing reference picture, default is 65537 [h264 @ 0x232a040] decode_slice_header error [h264 @ 0x232a040] no picture *** 0 dup! [AVIOContext @ 0x2448c00] Statistics: 0 seeks, 2 writeouts No more output streams to write to, finishing. frame= 1 fps=0.0 q=2.2 Lsize=N/A time=00:00:00.04 bitrate=N/A dup=1 drop=1 video:32kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Input file #0 (video.ts): Input stream #0:0 (video): 9 packets read (261340 bytes); 3 frames decoded; Input stream #0:1 (audio): 0 packets read (0 bytes); Input stream #0:2 (audio): 0 packets read (0 bytes); Total: 9 packets (261340 bytes) demuxed Output file #0 (out_42_20.jpg): Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (33209 bytes); Total: 1 packets (33209 bytes) muxed 3 frames successfully decoded, 0 decoding errors [AVIOContext @ 0x22c2e40] Statistics: 8798032 bytes read, 36 seeks