Я успешно создавал сегменты из одного исходного файла, используя -ss и -t после -i, используя скрипт python для создания .txt-файла, содержащего список сегментов, и используя -concat для смешивания сегментов вместе.

Сегодня я обнаружил -f сегменты и -segment_times, однако я искал через superuser и google и не могу понять, почему моя команда сейчас работает, кто-нибудь может помочь?

Я также хотел бы иметь возможность использовать функцию plot_list, однако документация не очень ясна в отношении синтаксиса, который необходимо использовать.

Вот команда, которую я использовал:

C:\Users\3A01>ffmpeg -i f:\Transcoder\repo\LB000001.mp4 -f segment -segment_times 10,20 -c copy -map 0 f:\test.mp4

Вот вывод:

C:\Users\3A01>ffmpeg -i f:\Transcoder\repo\LB000001.mp4 -f segment -segment_times 10,20 -c copy -map 0 f:\test.mp4
ffmpeg version N-82225-gb4e9252 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --   enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --   enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-   iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --   enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --     enable-libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 35.100 / 55. 35.100
  libavcodec     57. 66.101 / 57. 66.101
  libavformat    57. 57.100 / 57. 57.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 66.100 /  6. 66.100
  libswscale      4.  3.100 /  4.  3.100
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'f:\Transcoder\repo\LB000001.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2016-03-10T20:46:05.000000Z
    encoder         : HandBrake 0.10.5 2016021100
  Duration: 00:29:43.08, start: 0.000000, bitrate: 869 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv,     smpte170m/bt470bg/bt709), 718x576 [SAR 16:15 DAR 359:270], 703 kb/s, 25 fps, 25    tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2016-03-10T20:46:05.000000Z
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo,     fltp, 160 kb/s (default)
    Metadata:
      creation_time   : 2016-03-10T20:46:05.000000Z
      handler_name    : Stereo
[mp4 @ 0000000000028200] Invalid segment filename template 'f:\test.mp4'
Could not write header for output file #0 (incorrect codec parameters ?):         Invalid argumentStream mapping:
      Stream #0:0 -> #0:0 (copy)
      Stream #0:1 -> #0:1 (copy)
    Last message repeated 1 times

1 ответ1

0

test.mp4 должен быть test%d.mp4 . Так как вы будете создавать несколько файлов, вам нужно указать выходное имя с шаблоном, который ffmpeg будет использовать для именования нескольких файлов. Тот, который я поставил, создаст test1.mp4 test2.mp4 ...

Имейте в виду, что, поскольку вы используете режим копирования, срезы могут не произойти в точно указанных точках.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .