avconv mkv ถึง mkv พร้อมบั๊กบีบอัดสัญญาณเสียง


1

เพื่อทำการทดสอบคุณภาพฉันต้องการบีบอัดส่วนเสียง (เป็นบิตเรตต่ำ) ของไฟล์ matroska โดยไม่มีการทำลายวิดีโอ ตัวแปลงสัญญาณเสียงคือ AAC และตัวแปลงสัญญาณวิดีโอคือ H264 ฉันใช้ avconv บน Ubuntu เมื่อฉันเปิด CLI:

 avconv -i input.mkv -f matroska -vcodec copy -acodec copy -ab 12k \
            -strict experimental output.mkv

ฉันได้รับข้อผิดพลาด:

[matroska @ 0x1ea79c0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: -80 >= -80 av_interleaved_write_frame(): Invalid argument

มันจะไม่เกิดขึ้นเมื่อฉันใช้ไฟล์. mp4 (หากฉันเป็น CLI)

ผลลัพธ์แบบเต็มมีดังนี้:

[matroska,webm @ 0x971960] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'Arte-Documentaire-2013-06-07-13-35-30-269s-x264.mkv':
  Duration: 00:05:00.44, start: 0.000000, bitrate: N/A
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 180k tbc (default)
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16 (default)
File 'out.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'out.mkv':
  Metadata:
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: H264 / 0x34363248, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 1k tbn, 1k tbc (default)
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 12 kb/s (default)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac -> aac)
Press ctrl-c to stop encoding
[matroska @ 0x11e1880] Application provided invalid, non monotonically increasing dts to muxer in stream 0: -80 >= -80
av_interleaved_write_frame(): Invalid argument

ความคิดใด ๆ

คำตอบ:


1

คุณไม่สามารถคัดลอกโคเดกเสียง -acodec copy และเข้ารหัสอีกครั้งในเวลาเดียวกัน

ลองทำสิ่งต่อไปนี้:

avconv -i input.mkv -c:v copy -c:a aac -strict experimental -b:a 12k out.mkv

สังเกตว่า aac โปรแกรมเปลี่ยนไฟล์ใน FFmpeg / Libav ไม่ได้ส่งมอบคุณภาพที่ดีเท่ากับโปรแกรมอื่น (เช่น libfdk-aac หรือ libfaac )


หากไม่สามารถใช้งานได้ ... คุณใช้เครื่องมือรุ่นใด โปรดรวมเอาท์พุทคอนโซลแบบเต็มไม่ได้เจียระไนทุกครั้งเมื่อถามถึง FFmpeg / Libav

จุดบกพร่องนี้ยังคงอยู่หรือไม่เมื่อคุณดาวน์โหลด รุ่นล่าสุด ของ ffmpeg? ข้อบกพร่องหลายร้อยข้อได้รับการแก้ไขในทุกรุ่นและโอกาสที่คุณจะใช้รุ่นที่ล้าสมัย


ฉันลองข้อเสนอของคุณแล้ว แต่ยังคงได้รับข้อผิดพลาดเดียวกัน เมื่อฉันลองตัวแปลงสัญญาณอื่นฉันได้รับข้อผิดพลาดใหม่: "ไม่รู้จักตัวเข้ารหัส" avconv รุ่นของฉัน (avconv -version) คือ: avconv เวอร์ชั่น 0.8.6-6: 0.8.6-0 ฉันได้มันใช้ CLI แบบคลาสสิก "sudo apt-get install avconv"
MarAja

คุณกรุณาลองด้วยรุ่นใหม่กว่าเช่นหนึ่งจาก FFmpeg ในลิงค์ที่ฉันให้คุณ
slhck

มันได้ผล! ขอบคุณ! ขออภัยที่ไม่ได้ทำมันเป็นครั้งแรก :) อย่างไรก็ตามฉันยังคงมีโปรแกรมเปลี่ยนไฟล์ที่ไม่รู้จักเมื่อฉันพยายามใช้ libfdk-aac หรือ libfaac หากพวกเขาดีกว่าฉันต้องการทำงานกับพวกเขา ฉันจะเพิ่มพวกเขาได้อย่างไร
MarAja

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