"Theora_encode_init не вдалося" при перетворенні FLV в OGG Theora відео за допомогою FFmpeg


2

Як я можу використовувати FFmpeg для перетворення флеш-відео (.flv) на відео OGG Theora для відображення в HTML 5?


Коли я намагався використовувати

ffmpeg -i dayinthelife.wmv -vcodec libtheora -acodec libvorbis -b 750k dayinthelife.ogv

він генерував наступний результат.

Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001)
Input #0, asf, from 'dayinthelife.wmv':
  Duration:output 00:01:14.19, start: 5.000000, bitrate: 3754 kb/s
    Stream #0.0: Audio: wmav2, 48000 Hz, stereo, s16, 192 kb/s
    Stream #0.1: Video: wmv3, yuv420p, 1440x1080, 24000 kb/s, 29.97 tbr, 1k tbn, 1k tbc
Output #0, ogg, to 'dayinthelife.ogv':
    Stream #0.0: Video: libtheora, yuv420p, 1440x1080, q=2-31, 500 kb/s, 90k tbn, 29.97 tbc
    Stream #0.1: Audio: vorbis, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
  Stream #0.0 -> #0.1
[libtheora @ 0x2551920]theora_encode_init failed
Error while opening codec for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height

Чи відбувається це з будь-яким файлом FLV? (Зауважте, що ви тут використовуєте файл WMV). Яку версію FFmpeg ви використовуєте?
slhck

Це відбувається з будь-яким з трьох FLV файлів і 2 WMV файлів, які я спробував. Я перевстановлюю ffmpeg тепер на основі керівництва ви дали мені у вашій вилученій відповіді.
Yitzchak

Будь ласка, спробуйте це і подивіться, чи працює він. Я мав неоднозначні результати з різними версіями FFmpeg, які ви отримуєте з сховищ.
slhck

Він працює, хоча після прочитання на ньому я використав ffmpeg2theora для інших.
Yitzchak

Я бачу. Я скасував свою відповідь, якщо ви все-таки знайдете його корисним, інакше ви можете самостійно відповісти і розповісти нам більше ffmpeg2theora! :)
slhck

Відповіді:


1

Це відносно просто:

ffmpeg -i input.flv -vcodec theora -acodec vorbis output.ogv

Вкажіть потрібний бітовий розряд з -b наприклад, -b 1M або -b 512K.


Зауважте, що вам потрібно скомпілювати ffmpeg з підтримкою Theora і Vorbis. Якщо у вас немає цих варіантів, дотримуйтесь Довідник тут компілювати його з відповідними бібліотеками.

Більш конкретно, ці прапори: --enable-libtheora --enable-libvorbis.


Я пробував це перед тим як запитувати. Я отримав помилку [libtheora @ 0x2551920]theora_encode_init failed і порожній вихідний файл. Що я можу зробити з цим?
Yitzchak

1

Це свого роду дотична, але вона зробить роботу.

Handbrake - це безкоштовний кодер, побудований на FFmpeg, який перетворює декілька відеоформатів у MP4. Якщо ви вкажете, що ви хочете, щоб ваш вивід "Web Optimized" дав вам HTML5-сумісне відео в MP4.

Нижче наведено кроки для отримання відео в Ogg / Theora.

  • Відкрийте ручник
  • Вкажіть "Web Optimized"
  • Отримати вивід командного рядка, який би працював Handbrake, але не запускайте його.
  • У текстовому редакторі змініть бібліотеки з MP4 на бібліотеки Ogg / Theora.
  • Запустіть модифікований вихід через FFmpeg.

Якщо FFmpeg не може кодувати відео в першу чергу, я не знаю, що це дійсно допоможе.
slhck

Більш вірогідним є те, що правильні параметри не були передані до FFmpeg. Проте, є й шанс, що у файлі, який ви намагаєтеся відтворити, є корупція.
JonathanEyre

Для перетворення достатньо основних варіантів, я успішно зробив це з моєї установки FFmpeg (напр. ffmpeg -i input.flv -vcodec libtheora -acodec libvorbis output.ogv ) - Я підозрюю помилковий вхідний файл або конфігурацію FFmpeg.
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.