LIBFAAC ไม่สามารถสุ่มตัวอย่างช่องทางได้อีกครั้ง


2

ฉันใช้avconvเพื่อแปลงไฟล์วิดีโอเป็น MP4 แต่เมื่อใดก็ตามที่ฉันพยายามเข้ารหัสไฟล์ด้วย 6 หรือ 8 ช่องเป็น 2 ช่องทางโดยใช้libfaacฉันได้รับข้อความแสดงข้อผิดพลาด:

Can not resample 8 channels @ 44100 Hz to 2 channels @ 44100 Hz

( แก้ไข : ข้อความทั้งหมดสามารถดูได้ที่นี่: http://pastebin.com/UXGrBy1D )

นี่คือ codec ที่เราได้ติดตั้งไว้avconv: http://pastebin.com/hyQrqXqW

และนี่คือคำสั่งที่ฉันใช้:

avconv -y -i input.mp4 -vcodec libx264 -bufsize 20M -maxrate 4000k -threads 12 -same_quant -acodec libfaac -ac 2 -ar 44100 -ab 128k output.mp4

ฉันกำลังทำอะไรผิดหรือเปล่า?

หรือมีทางเลือกใดบ้างlibfaacที่จะทำการสุ่มตัวอย่างอีก 8 ช่องเป็น 2 ช่อง

ฉันต้องสามารถทำได้จากบรรทัดคำสั่งบนเซิร์ฟเวอร์ ubuntu 12.04 ของฉัน


ข้อผิดพลาดบอกว่า: มันไม่สามารถดาวน์มิกซ์ได้โดยอัตโนมัติ คุณอาจต้องทำโดยการแยกเสียงต้นฉบับดาวน์มิกซ์ด้วยsoxหรือคล้ายกันจากนั้นมัลติเพล็กซ์ด้วยวิดีโอที่เข้ารหัส เราสามารถดูเอาต์พุตบรรทัดคำสั่งที่ไม่เจียระไนของคุณได้avconvไหม
slhck

แน่นอนว่ามาดูการแก้ไขของฉัน เอาท์พุทไม่ได้เจียระไนค่อนข้างใหญ่!
Jimmery

ขอบคุณ! คุณช่วยอธิบายสิ่งที่คุณต้องทำให้สำเร็จได้ไหม? การลดขนาดไฟล์? เข้ากันได้กับอุปกรณ์บางอย่าง? สำหรับเหตุผลที่-same_quantไม่ควรนำมาใช้ดู: sameq ไม่ได้หมายความว่า "คุณภาพเดียวกัน .
slhck

คำตอบ:


4

ครั้งแรกของทั้งหมดถ้าคุณยังไม่ได้ดำเนินการตรวจสอบคำแนะนำการเข้ารหัส H.264 ffmpeg - มันใช้กับ avconv เช่นกันเพียงแค่เปลี่ยนอินสแตนซ์ของทุกการffmpeg avconvลองพิจารณาอัปเกรดเป็นรุ่นล่าสุดของ avconv หรือ ffmpeg เนื่องจากคุณใช้ Ubuntu คุณสามารถใช้PPA นี้หรือคอมไพล์ด้วยตัวคุณเอง (ตัวเลือกสุดท้ายนี้จะให้คุณเข้าถึงfdk_aacซึ่งเป็นตัวเข้ารหัส AAC ที่ดีกว่ามาก FAAC)

-bufsize 20M -maxrate 4000k -threads 12 -same_quantถ้าคุณรู้ว่าสิ่งที่คุณทำและมีเหตุผลเฉพาะคุณอาจจะไม่ควรใช้ อันที่จริงแล้วโดยการป้อนข้อมูลใน pastebin นั้นคุณควรจะใช้-codec:v copyซึ่งจะไม่แตะต้องวิดีโอ

สำหรับปัญหาที่ระบุไว้ของคุณ ... ฉันไม่คิดว่า libfaac เป็นปัญหาของคุณ ดูที่นี่ (จาก pastebin ของคุณ):

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from \'/var/www/up/up50eefce404e4f.mp4\':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isomavc1mp42
    creation_time   : 2007-12-08 19:28:08
  Duration: 00:46:47.64, start: 0.000000, bitrate: 308 kb/s
    Stream #0.0(und): Audio: aac, 44100 Hz, stereo, s16, 111 kb/s
    Metadata:
      creation_time   : 2007-12-08 19:28:08
    Stream #0.1(und): Video: h264 (Baseline), yuv420p, 320x240 [PAR 1:1 DAR 4:3], 195 kb/s, 11.99 fps, 11.99 tbr, 11988 tbn, 23976 tbc
    Metadata:
      creation_time   : 2007-12-08 19:28:11

FFmpeg คิดว่าเสียงอินพุตของคุณเป็นแบบสเตอริโอ มากในภายหลัง:

Input stream #0:0 frame changed from rate:44100 fmt:s16 ch:2 to rate:44100 fmt:s16 ch:8
Resampling output channel count must be 1 or 2 for mono input; 1, 2 or 6 for stereo input; or N for N channel input.
Can not resample 8 channels @ 44100 Hz to 2 channels @ 44100 Hz

สตรีมวิดีโอยังทำให้เกิดข้อผิดพลาดมากมาย ฉันสงสัยว่าข้อมูลของคุณอาจเสียหาย

เป็นไปได้ว่าคำสั่งต่อไปนี้จะทำงาน:

avconv -ac 8 -i input.mp4 -c:v copy -c:a libfaac -b:a 128k -ac 2 output.mp4

-acตั้งค่าจำนวนช่องสัญญาณเสียง: หากกระแส AAC ไม่เสียหายอาจเป็นไปได้ว่ารูปแบบคอนเทนเนอร์กำลังให้ข้อมูลที่ไม่ถูกต้องเป็น avconv และวาง-ac 8ก่อนอินพุตจะแทนที่การตั้งค่าที่จัดไว้ในคอนเทนเนอร์ MP4 (และวาง-ac 2ก่อนที่เอาต์พุตจะบอก ffmpeg เพื่อส่งออกไปยัง 2 ช่องสัญญาณเสียง)

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