“ 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

  • เปิดเบรกมือ
  • ระบุ "การเพิ่มประสิทธิภาพเว็บ"
  • รับเอาต์พุต commandline ที่ Handbrake จะทำงาน แต่ไม่เรียกใช้
  • ในเท็กซ์เอดิเตอร์เปลี่ยนไลบรารีจาก MP4 เป็นไลบรารี Ogg / Theora
  • รันเอาต์พุตที่แก้ไขผ่าน FFmpeg

หาก FFmpeg ไม่สามารถเข้ารหัสวิดีโอได้ตั้งแต่แรกฉันไม่รู้ว่าจะช่วยได้จริงหรือไม่
slhck

เป็นไปได้ว่าในกรณีที่ตัวเลือกที่ถูกต้องไม่ได้ถูกส่งไปยัง FFmpeg อย่างไรก็ตามยังมีโอกาสที่จะเกิดความเสียหายในไฟล์ที่คุณพยายามหาใหม่
JonathanEyre

ตัวเลือกพื้นฐานมากพอที่จะแปลงฉันได้ทำการติดตั้ง FFmpeg ของฉันเรียบร้อยแล้ว (เช่นffmpeg -i input.flv -vcodec libtheora -acodec libvorbis output.ogv) - ฉันสงสัยว่ามีไฟล์อินพุตที่ผิดพลาดหรือการกำหนดค่า FFmpeg
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.