1

Я использую ffmpeg 0.8 на Windows (не могу использовать более позднюю версию, потому что мой поставщик услуг имеет только эту версию, установленную на серверах, на самом деле даже 0.7.8)

Попытка вырезать медиа-файл (длиной 10 секунд)

ffmpeg -ss 00:00:05.00  -i i.ogg o.ogg

На самом деле файл результата не то, что нужно, получил вывод:

ffmpeg version 0.8, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 23 2011 14:21:12 with gcc 4.5.3
  configuration: --enable-gpl --enable-version3 --enable-memalign-hack --enable-
runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libo
pencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --
enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger
 --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enabl
e-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
i.ogg: could not seek to position 5.000
Input #0, ogg, from 'i.ogg':
  Duration: 00:00:10.02, start: 0.000000, bitrate: 57 kb/s
    Stream #0.0: Video: theora, yuv420p, 505x404 [PAR 1:1 DAR 5:4], 25 tbr, 25 t
bn, 25 tbc
    Stream #0.1: Audio: vorbis, 44100 Hz, stereo, s16, 64 kb/s
    Metadata:
      ENCODER         : Lavf53.4.0
File 'o.ogg' already exists. Overwrite ? [y/N] y
[buffer @ 0000000000329060] w:505 h:404 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_
param:
Output #0, ogg, to 'o.ogg':
  Metadata:
    encoder         : Lavf53.4.0
    Stream #0.0: Video: libtheora, yuv420p, 505x404 [PAR 1:1 DAR 5:4], q=2-31, 2
00 kb/s, 25 tbn, 25 tbc
    Stream #0.1: Audio: flac, 44100 Hz, stereo, s16, 64 kb/s
    Metadata:
      ENCODER         : Lavf53.4.0
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
frame=    0 fps=  0 q=0.0 Lsize=      84kB time=00:00:00.00 bitrate=   0.0kbits/
s
video:0kB audio:80kB global headers:3kB muxing overhead 0.673916%

Хорошо работает с последними версиями ffmpeg. В чем может быть проблема?

1 ответ1

1

Похоже, ошибка ffmpeg или отсутствие функции. Я бы попытался обойти это, указав опцию -ss по-другому. Наиболее очевидная вещь - это просто попробовать "-ss 5" вместо синтаксиса HH:MM:SS.

Это, со страницы руководства для 0.11, также выглядит многообещающе. Может быть, а может и не доступно в вашей старой версии.

-ss позиция (вход / выход)

Когда используется как опция ввода (перед "-i"), ищет в этом файле ввода позицию. При использовании в качестве параметра вывода (перед именем выходного файла) декодирует, но отбрасывает ввод, пока отметки времени не достигнут позиции. Это медленнее, но точнее.

позиция может быть в секундах или в форме «чч: мм: сс [.ххх]».

Предполагая, что вы действительно хотите только вырезать, а не перекодировать, вы также должны добавить опции кодека для копирования (-acodec copy , -vcodec copy). -copyts могут быть полезны (копирование меток времени). Итак, попробуйте что-то вроде этого:

ffmpeg -i foo.ogg -acodec copy -vcodec copy -copyts -ss 5 foominus5.ogg

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