如何从视频中提取1秒(使用快速搜索),并使用vp9调整大小?我总是得到同样的错误。这是我正在尝试的基本命令:
ffmpeg -ss 00:00:10 -i test.webm -to 00:00:01 -filter:v "scale=min(iw\,1280):min(ih\,720):force_original_aspect_ratio=decrease" -c:v libvpx-vp9 -y output.webm
它返回:
"Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
玩转之后,我意识到这将起作用:
ffmpeg -ss 00:00:10 -i test.webm -to 00:00:01 -c copy -y output.webm
不理想,但至少可以正常工作,因此我添加了过滤器:
ffmpeg -ss 00:00:10 -i test.webm -to 00:00:01 -filter:v "scale=min(iw\,1280):min(ih\,720):force_original_aspect_ratio=decrease" -c copy -y output.webm
蚂蚁然后我得到:
"Filtering and streamcopy cannot be used together."
我尝试了各种组合,均未成功。任何提示将不胜感激。谢谢
这是第一个命令的完整日志:
ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-16ubuntu3) configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Splitting the commandline. Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '00:00:10'. Reading option '-i' ... matched as input url with argument 'test.webm'. Reading option '-to' ... matched as option 'to' (record or transcode stop time) with argument '00:00:01'. Reading option '-filter:v' ... matched as option 'filter' (set stream filtergraph) with argument 'scale=min(iw\,1280):min(ih\,720):force_original_aspect_ratio=decrease'. Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'libvpx-vp9'. Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'. Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'. Reading option 'output.webm' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option y (overwrite output files) with argument 1. Applying option v (set logging level) with argument debug. Successfully parsed a group of options. Parsing a group of options: input url test.webm. Applying option ss (set the start time offset) with argument 00:00:10. Successfully parsed a group of options. Opening an input file: test.webm. [NULL @ 0x55ce679f8920] Opening 'test.webm' for reading [file @ 0x55ce679f9340] Setting default whitelist 'file,crypto' [matroska,webm @ 0x55ce679f8920] Format matroska,webm probed with size=2048 and score=100 st:0 removing common factor 1000000 from timebase [matroska,webm @ 0x55ce679f8920] Before avformat_find_stream_info() pos: 566 bytes read:32768 seeks:0 nb_streams:1 [matroska,webm @ 0x55ce679f8920] All info found [matroska,webm @ 0x55ce679f8920] After avformat_find_stream_info() pos: 72449 bytes read:72449 seeks:0 frames:1 Input #0, matroska,webm, from 'test.webm': Metadata: ENCODER : Lavf57.83.100 Duration: 00:00:15.03, start: 5.016000, bitrate: 1146 kb/s Stream #0:0(eng), 1, 1/1000: Video: vp9 (Profile 0), 1 reference frame, yuv420p(tv), 1280x720, 0/1, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default) Metadata: DURATION : 00:00:15.025000000 Successfully opened the file. Parsing a group of options: output url output.webm. Applying option to (record or transcode stop time) with argument 00:00:01. Applying option filter:v (set stream filtergraph) with argument scale=min(iw\,1280):min(ih\,720):force_original_aspect_ratio=decrease. Applying option c:v (codec name) with argument libvpx-vp9. Successfully parsed a group of options. Opening an output file: output.webm. [file @ 0x55ce67b1e820] Setting default whitelist 'file,crypto' Successfully opened the file. detected 8 logical cores Stream mapping: Stream #0:0 -> #0:0 (vp9 (native) -> vp9 (libvpx-vp9)) Press [q] to stop, [?] for help cur_dts is invalid (this is harmless if it occurs once at the start per stream) Last message repeated 1 times [matroska,webm @ 0x55ce679f8920] first_dts 5016 not matching first dts 10395 (pts 10395, duration 41) in the queue cur_dts is invalid (this is harmless if it occurs once at the start per stream) Last message repeated 6 times [Parsed_scale_0 @ 0x55ce67a7c520] Setting 'w' to value 'min(iw,1280)' [Parsed_scale_0 @ 0x55ce67a7c520] Setting 'h' to value 'min(ih,720)' [Parsed_scale_0 @ 0x55ce67a7c520] Setting 'force_original_aspect_ratio' to value 'decrease' [Parsed_scale_0 @ 0x55ce67a7c520] Setting 'flags' to value 'bicubic' [Parsed_scale_0 @ 0x55ce67a7c520] w:min(iw,1280) h:min(ih,720) flags:'bicubic' interl:0 [graph 0 input from stream 0:0 @ 0x55ce67a7cea0] Setting 'video_size' to value '1280x720' [graph 0 input from stream 0:0 @ 0x55ce67a7cea0] Setting 'pix_fmt' to value '0' [graph 0 input from stream 0:0 @ 0x55ce67a7cea0] Setting 'time_base' to value '1/1000' [graph 0 input from stream 0:0 @ 0x55ce67a7cea0] Setting 'pixel_aspect' to value '1/1' [graph 0 input from stream 0:0 @ 0x55ce67a7cea0] Setting 'sws_param' to value 'flags=2' [graph 0 input from stream 0:0 @ 0x55ce67a7cea0] Setting 'frame_rate' to value '24000/1001' [graph 0 input from stream 0:0 @ 0x55ce67a7cea0] w:1280 h:720 pixfmt:yuv420p tb:1/1000 fr:24000/1001 sar:1/1 sws_param:flags=2 [format @ 0x55ce67ad7d60] compat: called with args=[yuv420p|yuva420p|yuv422p|yuv440p|yuv444p|gbrp] [format @ 0x55ce67ad7d60] Setting 'pix_fmts' to value 'yuv420p|yuva420p|yuv422p|yuv440p|yuv444p|gbrp' [AVFilterGraph @ 0x55ce67aec740] query_formats: 6 queried, 5 merged, 0 already done, 0 delayed [Parsed_scale_0 @ 0x55ce67a7c520] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x4 [libvpx-vp9 @ 0x55ce67b32200] v1.7.0 [libvpx-vp9 @ 0x55ce67b32200] --prefix=/usr --enable-pic --enable-shared --disable-install-bins --disable-install-srcs --size-limit=16384x16384 --enable-postproc --enable-multi-res-encoding --enable-temporal-denoising --enable-vp9-temporal-denoising --enable-vp9-postproc --target=x86_64-linux-gcc [libvpx-vp9 @ 0x55ce67b32200] vpx_codec_enc_cfg [libvpx-vp9 @ 0x55ce67b32200] generic settings g_usage: 0 g_threads: 8 g_profile: 0 g_w: 320 g_h: 240 g_bit_depth: 8 g_input_bit_depth: 8 g_timebase: {1/30} g_error_resilient: 0 g_pass: 0 g_lag_in_frames: 25 [libvpx-vp9 @ 0x55ce67b32200] rate control settings rc_dropframe_thresh: 0 rc_resize_allowed: 0 rc_resize_up_thresh: 60 rc_resize_down_thresh: 30 rc_end_usage: 0 rc_twopass_stats_in: (nil)(0) rc_target_bitrate: 256 [libvpx-vp9 @ 0x55ce67b32200] quantizer settings rc_min_quantizer: 0 rc_max_quantizer: 63 [libvpx-vp9 @ 0x55ce67b32200] bitrate tolerance rc_undershoot_pct: 25 rc_overshoot_pct: 25 [libvpx-vp9 @ 0x55ce67b32200] decoder buffer model rc_buf_sz: 6000 rc_buf_initial_sz: 4000 rc_buf_optimal_sz: 5000 [libvpx-vp9 @ 0x55ce67b32200] 2 pass rate control settings rc_2pass_vbr_bias_pct: 50 rc_2pass_vbr_minsection_pct: 0 rc_2pass_vbr_maxsection_pct: 2000 [libvpx-vp9 @ 0x55ce67b32200] keyframing settings kf_mode: 1 kf_min_dist: 0 kf_max_dist: 128 [libvpx-vp9 @ 0x55ce67b32200] [libvpx-vp9 @ 0x55ce67b32200] vpx_codec_enc_cfg [libvpx-vp9 @ 0x55ce67b32200] generic settings g_usage: 0 g_threads: 0 g_profile: 0 g_w: 1280 g_h: 720 g_bit_depth: 8 g_input_bit_depth: 8 g_timebase: {1001/24000} g_error_resilient: 0 g_pass: 0 g_lag_in_frames: 25 [libvpx-vp9 @ 0x55ce67b32200] rate control settings rc_dropframe_thresh: 0 rc_resize_allowed: 0 rc_resize_up_thresh: 60 rc_resize_down_thresh: 30 rc_end_usage: 0 rc_twopass_stats_in: (nil)(0) rc_target_bitrate: 200 [libvpx-vp9 @ 0x55ce67b32200] quantizer settings rc_min_quantizer: 0 rc_max_quantizer: 63 [libvpx-vp9 @ 0x55ce67b32200] bitrate tolerance rc_undershoot_pct: 25 rc_overshoot_pct: 25 [libvpx-vp9 @ 0x55ce67b32200] decoder buffer model rc_buf_sz: 6000 rc_buf_initial_sz: 4000 rc_buf_optimal_sz: 5000 [libvpx-vp9 @ 0x55ce67b32200] 2 pass rate control settings rc_2pass_vbr_bias_pct: 50 rc_2pass_vbr_minsection_pct: 0 rc_2pass_vbr_maxsection_pct: 2000 [libvpx-vp9 @ 0x55ce67b32200] keyframing settings kf_mode: 1 kf_min_dist: 0 kf_max_dist: 128 [libvpx-vp9 @ 0x55ce67b32200] [libvpx-vp9 @ 0x55ce67b32200] vpx_codec_control [libvpx-vp9 @ 0x55ce67b32200] VP8E_SET_CPUUSED: 1 [libvpx-vp9 @ 0x55ce67b32200] VP8E_SET_ARNR_MAXFRAMES: 0 [libvpx-vp9 @ 0x55ce67b32200] VP8E_SET_ARNR_STRENGTH: 3 [libvpx-vp9 @ 0x55ce67b32200] VP8E_SET_ARNR_TYPE: 3 [libvpx-vp9 @ 0x55ce67b32200] VP8E_SET_STATIC_THRESHOLD: 0 [libvpx-vp9 @ 0x55ce67b32200] VP9E_SET_COLOR_SPACE: 0 [libvpx-vp9 @ 0x55ce67b32200] VP9E_SET_COLOR_RANGE: 0 [libvpx-vp9 @ 0x55ce67b32200] VP9E_SET_TARGET_LEVEL: 255 [libvpx-vp9 @ 0x55ce67b32200] Using deadline: 1000000 Output #0, webm, to 'output.webm': Metadata: encoder : Lavf57.83.100 Stream #0:0(eng), 0, 1/1000: Video: vp9 (libvpx-vp9), 1 reference frame, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 0/1, q=-1--1, 200 kb/s, 23.98 fps, 1k tbn, 23.98 tbc (default) Metadata: DURATION : 00:00:15.025000000 encoder : Lavc57.107.100 libvpx-vp9 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 cur_dts is invalid (this is harmless if it occurs once at the start per stream) Last message repeated 120 times [out_0_0 @ 0x55ce67ac35a0] EOF on sink link out_0_0:default. No more output streams to write to, finishing. [webm @ 0x55ce67b2e2a0] get_metadata_duration returned: 15025000 [webm @ 0x55ce67b2e2a0] Write early duration from recording time = 1000 [webm @ 0x55ce67b2e2a0] end duration = 0 [webm @ 0x55ce67b2e2a0] stream 0 end duration = 0 frame= 0 fps=0.0 q=0.0 Lsize= 1kB time=00:00:00.00 bitrate=N/A speed= 0x video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Input file #0 (test.webm): Input stream #0:0 (video): 120 packets read (1031599 bytes); 112 frames decoded; Total: 120 packets (1031599 bytes) demuxed Output file #0 (output.webm): Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes); Total: 0 packets (0 bytes) muxed Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used) 112 frames successfully decoded, 0 decoding errors [AVIOContext @ 0x55ce67b2e9a0] Statistics: 13 seeks, 9 writeouts [AVIOContext @ 0x55ce67a01660] Statistics: 2137508 bytes read, 4 seeks