Как мне извлечь 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