เกิดข้อผิดพลาดเมื่อเรียกใช้ ffmpeg บน linux


0

ฉันกำลังพัฒนาบนเครื่อง windows และใช้รหัสต่อไปนี้เพื่อตรวจสอบวิดีโอ:

ffmpeg -v error -i $file_path -f null - 2>&1

หลังจากนำไปใช้กับ linux ฉันได้รับข้อความแจ้งข้อผิดพลาดซึ่งฉันไม่พบสิ่งใดใน Google อันทรงพลัง

Expected number for v but found: error

คำพูดใด ๆ ของภูมิปัญญา ???


Linux distro ตัวไหน ฉันไม่รู้ว่ามันจะทำให้เกิดปัญหานี้หรือไม่ แต่ 'ffmpeg' ในที่เก็บ Debian / Ubuntu จริงๆแล้ว avconv ; นี้ อาจ เป็นกรณีของไวยากรณ์ที่แตกต่าง
evilsoup

CentOS ปล่อย 6.4 ฉันสามารถเข้าถึงไดเรกทอรี webroot ของเซิร์ฟเวอร์และกำลังเรียกใช้คำสั่งเหล่านี้ผ่านฟังก์ชั่น exec () ของ PHP
Kate

คำตอบ:


0

-v ใช้ตัวเลขสำหรับระดับความฟุ่มเฟื่อยดังนั้นคุณต้องเขียน -v 0 สำหรับข้อผิดพลาดเท่านั้น (ตามต้นฉบับ) หรือ -v 1 สำหรับข้อมูลเพิ่มเติม


ขอบคุณ towo ฉันได้เปลี่ยนเป็น -v 0 ผลที่ได้คือเอาท์พุทมากกว่าแค่ข้อผิดพลาด
Kate

มันแปลกเพราะ 0 ควรเป็นข้อผิดพลาด / ร้ายแรงและแบนเนอร์ที่มีศักยภาพ: ffmpeg-users.933282.n4.nabble.com/Verbosity-td934587.html
towo

ฉันรู้ว่าแปลกและน่ารำคาญ! เป็นไปได้หรือไม่ที่ปิดใช้งานตัวเลือก -v
Kate

ในความเป็นจริง, -v ไม่รับ 0 เป็นตัวเลขอีกต่อไป คุณกำลังอ้างถึงเธรดจากปี 2008 ดังนั้นสิ่งนี้จึงเปลี่ยนไปมาก ดูคำตอบของฉันสำหรับตัวเลขที่ถูกต้อง
slhck

1

บางทีสิ่งที่คุณต้องการคือ -err_detect ธง?

-err_detect        <flags>      .D.VA. set error detection flags
   crccheck                     .D.VA. verify embedded CRCs
   bitstream                    .D.VA. detect bitstream specification deviations
   buffer                       .D.VA. detect improper bitstream length
   explode                      .D.VA. abort decoding on minor error detection    
   careful                      .D.VA. consider things that violate the spec and have not been seen in the wild as errors
   compliant                    .D.VA. consider all spec non compliancies as errors
   aggressive                   .D.VA. consider things that a sane encoder should not do as an error

นั่นเป็นตัวเลือกที่ดี แต่ก็ไม่ได้ส่งผลกระทบต่อผลลัพธ์ในกรณีของฉัน: (... ฉันลงเอยด้วยการอ่านสถานะผลลัพธ์เพื่อระบุว่ามีข้อผิดพลาดหรือไม่
Kate

1

คุณอาจใช้เวอร์ชั่นเก่าของ ffmpegน่าจะเป็นของโบราณที่มาพร้อมกับ CentOS ขึ้นอยู่กับเคอร์เนลของคุณคุณสามารถ ดาวน์โหลดบิลด์แบบคงที่ , หรือ สร้างมันเอง เพื่อรับเวอร์ชันล่าสุด

จากนั้น -v ตัวเลือก (หรือ -loglevelซึ่งเหมือนกัน) ยอมรับพารามิเตอร์ต่อไปนี้:

  • 'เงียบ' - ไม่แสดงอะไรเลย เงียบ.
  • ‘ตื่นตระหนก’ - แสดงเฉพาะข้อผิดพลาดร้ายแรงซึ่งอาจทำให้กระบวนการพัง   เช่นและยืนยันความล้มเหลว ปัจจุบันนี้ไม่ได้ใช้เพื่ออะไร
  • 'ร้ายแรง' - แสดงข้อผิดพลาดร้ายแรงเท่านั้น เหล่านี้เป็นข้อผิดพลาดหลังจากที่   กระบวนการไม่สามารถดำเนินการต่อไปได้อย่างแน่นอน
  • 'ข้อผิดพลาด' - แสดงข้อผิดพลาดทั้งหมดรวมถึงข้อผิดพลาดที่สามารถกู้คืนได้
  • 'คำเตือน' - แสดงคำเตือนและข้อผิดพลาดทั้งหมด ข้อความใด ๆ ที่เกี่ยวข้องกับ   เหตุการณ์ที่อาจไม่ถูกต้องหรือไม่คาดคิดจะปรากฏขึ้น
  • ‘info’ - แสดงข้อความที่ให้ข้อมูลระหว่างการประมวลผล อันนี้ค่ะ   นอกจากคำเตือนและข้อผิดพลาด นี่เป็นค่าเริ่มต้น
  • ‘verbose’ - เหมือนกับข้อมูลยกเว้น verbose มากกว่า
  • ‘debug’ - แสดงทุกอย่างรวมถึงข้อมูลการแก้ไขข้อบกพร่อง

มัน ทำ ยอมรับตัวเลข แต่ค่าเหล่านั้นเป็นค่าฮาร์ดโค้ด ใน log.h ไฟล์ :

AV_LOG_QUIET    -8
AV_LOG_PANIC     0
AV_LOG_FATAL     8
AV_LOG_ERROR    16
AV_LOG_WARNING  24
AV_LOG_INFO     32
AV_LOG_VERBOSE  40
AV_LOG_DEBUG    48

ดังนั้นคุณสามารถใช้ตัวเลขเหล่านี้หากคุณต้องการ แต่แน่นอนว่ามันจะง่ายกว่าถ้าใช้การแทนค่าสตริง


รุ่น ffmpeg เป็นรุ่นที่เก่ากว่า: FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers" [1]=> string(73) " built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6) และน่าเสียดายที่ฉันไม่มีสิทธิ์อัปเกรด ตามที่คุณแนะนำฉันพยายามใช้หมายเลข hardcoded แต่ ffmpeg ดูเหมือนจะไม่ชอบและกลับมาพร้อมกับ The value for v was 16 which is not within -10.000000 - 10.000000
Kate

หมายเลขบันทึกเหมือนกันสำหรับ 0.6.5 แต่บางทีพวกเขาได้เปลี่ยนวิธีแยกวิเคราะห์ หากคุณไม่สามารถเปลี่ยนรุ่นด้วยตัวเองให้ลองถามผู้ให้บริการของคุณว่าพวกเขาสามารถจัดหาเวอร์ชั่นใหม่ให้คุณได้หรือไม่ - คุณจะไม่เชื่อว่ามีข้อบกพร่องจำนวนเท่าใดที่ปิดตัวลงและมีการปรับปรุงตั้งแต่ 0.6.5
slhck

ฉันจะข้ามมือของฉันและหวังว่าพวกเขาจะได้รับความเมตตาและอัพเกรด ขอบคุณมากสำหรับข้อมูลของคุณ !!!
Kate
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.