ตัวแปลงสัญญาณใดที่เหมาะที่สุดสำหรับการเล่นด้วย Windows Media Player บน Windows XP


16

ฉันต้องเข้ารหัสวิดีโอสั้น ๆ ในรูปแบบที่สามารถเล่นกับ windows media player บน windows xp ได้โดยไม่ต้องติดตั้งตัวแปลงสัญญาณเพิ่มเติมใด ๆ สำหรับกระบวนการบันทึกฉันใช้ ffmpeg

ฉันได้ลองใช้msmpeg4v2ตัวแปลงสัญญาณแล้ว แต่คุณภาพแย่มาก (เทียบกับวิดีโอต้นฉบับที่คุณเห็น "บล็อก" ขนาดใหญ่) ดังนั้นฉันจึงกำลังมองหาตัวแปลงสัญญาณอื่น ๆ ที่ใช้งานได้นอกกรอบและมีคุณภาพอย่างน้อย "ตกลง"

เนื่องจากความคิดเห็นระบุว่าอาจไม่ใช่ตัวแปลงสัญญาณ แต่เป็นปัญหาบิตเรตนี่คือคำสั่งที่ฉันใช้:

ffmpeg -i x.flv -vcodec msmpeg4v2 -acodec adpcm_ima_wav x.avi

เอาท์พุท:

Input #0, flv, from 'x.flv':
  Metadata:
    moovPosition    : 39337765
    avcprofile      : 100
    avclevel        : 30
    aacaot          : 2
    videoframerate  : 25
    audiochannels   : 2
  Duration: 00:06:19.52, start: 0.000000, bitrate: 836 kb/s
    Stream #0:0: Video: h264 (High), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], 25 tbr, 1k tbn, 50 tbc
    Stream #0:1: Audio: aac, 48000 Hz, stereo, s16
w:702 h:396 pixfmt:yuv420p tb:1/1000000 sar:2596/3679 sws_param:
Output #0, avi, to 'x.avi':
  Metadata:
    moovPosition    : 39337765
    avcprofile      : 100
    avclevel        : 30
    aacaot          : 2
    videoframerate  : 25
    audiochannels   : 2
    ISFT            : Lavf53.32.100
    Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0:1: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 48000 Hz, stereo, s16, 384 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> msmpeg4v2)
  Stream #0:1 -> #0:1 (aac -> adpcm_ima_wav)
Press [q] to stop, [?] for help
frame= 9485 fps=436 q=31.0 Lsize=   31197kB time=00:06:19.48 bitrate= 673.5kbits/s
video:12628kB audio:17913kB global headers:0kB muxing overhead 2.149820%

3
บางทีปัญหาอาจเป็นบิตเรตของคุณไม่ใช่ตัวแปลงสัญญาณของคุณ ตัวแปลงสัญญาณที่แนะนำสำหรับระบบ Windows เป็นส่วนใหญ่มีแนวโน้มการจัดเรียงของบางWMV
Der Hochstapler


ดูคำตอบของฉันที่นั่นเพื่อดูลิงก์ไปยังคำถามที่พบบ่อยอย่างเป็นทางการของ Microsoft แต่โดยพื้นฐานแล้วคุณติดอยู่กับ Windows Media Video ซึ่ง FFmpeg จะไม่ผลิต ดังนั้นสิ่งนั้นหรือสิ่งที่คุณได้ลอง ดังที่ @Oliver พูดไว้แล้วให้ลองตั้งค่าบิตเรตหรือคุณภาพที่สูงขึ้น ฉันคิดว่ามันแค่ใช้ค่าเริ่มต้น
slhck

ประโยชน์ของตัวแปลงสัญญาณ MPEG นั้นไม่ได้มีขนาด แต่ค่อนข้างจะเป็นความจริงที่ว่ามันไม่ใช่คอนเทนเนอร์เช่น AVI และเป็นไฟล์ที่ใช้สตรีมที่สามารถบันทึกผ่านตัวเข้ารหัสฮาร์ดแวร์ที่ใช้กับสื่อดีวีดีสำหรับเครื่องเล่นแบบสแตนด์อโลน และสามารถแก้ไขได้อย่างง่ายดาย ดังนั้นเพื่อให้ชัดเจนสิ่งที่คุณถามเกี่ยวกับเป็นรูปแบบภาพยนตร์ที่คุณสามารถเข้ารหัสโดยใช้ FFMPEG ซึ่งจะสร้างขนาดที่คุณพอใจและจะทำงานกับ Windows Media Player โดยไม่ต้องดาวน์โหลดเพิ่มเติม แก้ไข?
Bon Gart

ใช่. WMV ก็ใช้ได้เช่นกัน ที่ฉันได้รับคุณภาพเดียวกัน - ดังนั้นอาจมีบางอย่างผิดปกติกับบิตเรต
ThiefMaster

คำตอบ:


12

q=2-31, 200 kb/sเนื่องจากคุณไม่ได้ระบุอะไรอื่นสตรีมวิดีโอของคุณตั้งค่าการใช้งาน มันส่งผลใน673.5kbitsค่าเฉลี่ยซึ่งไม่มากอย่างน้อยไม่ใช่สำหรับตัวแปลงสัญญาณที่ไม่ใช่ h.264

ลองบังคับ

  • บิตเรตที่แน่นอนพร้อมด้วย-b:v 1000Kตัวอย่างเช่น กับรุ่นเก่า FFmpeg, -bคุณสามารถใช้
  • -qscale 2ยกตัวอย่างเช่นระดับคุณภาพคงที่ ที่นี่ค่าสามารถอยู่ในช่วง 1 ถึง 31 ค่า Sane สำหรับqscaleอยู่ในช่วงตั้งแต่ 2 ถึง 5 หรือมากกว่านั้น เพียงแค่ลองดูว่าอะไรจะได้ผลดีที่สุด

ตัวแปลงสัญญาณที่ได้รับการสนับสนุนบน Windows เป็นค่าเริ่มต้นได้แก่ :

มีตัวแปลงสัญญาณเสียงและวิดีโอหลายร้อยรายการที่ใช้งานอยู่ในปัจจุบัน บางตัวสร้างขึ้นโดย Microsoft แต่ตัวแปลงสัญญาณส่วนใหญ่นั้นถูกสร้างขึ้นโดย บริษัท องค์กรหรือบุคคลอื่น ตามค่าเริ่มต้นระบบปฏิบัติการ Windows และโปรแกรมเล่นจะมีตัวแปลงสัญญาณยอดนิยมจำนวนมากเช่น Windows Media Audio, Windows Media Video และ MP3

ดูประเภทไฟล์มัลติมีเดียที่ Windows Media Player รองรับสำหรับข้อมูลเพิ่มเติม

ด้วย FFmpeg คุณสามารถลองmpeg1video(MPEG-1) หรือmpeg2video(MPEG-2) หรือmsmpeg4(MPEG-4 Part II) ได้ แต่ฉันไม่แน่ใจว่าตัวหลังนั้นรองรับในระดับสากลหรือไม่ หากคุณต้องการเล่นอย่างปลอดภัยคุณจะต้องใช้ MPEG-1 หรือ MPEG-2


ใช่ ... นั่นเป็นบิตเรตที่ต่ำสำหรับไฟล์ mpeg
Bon Gart

หึ ฉันต้องบอกว่าพวกเรามีความสุขกับ h.264 ทุกวันนี้
slhck

โดยเฉพาะเมื่อพิจารณาจากที่คุณกำลังมองหาที่ 4k เพื่อ 5k 2 ชั่วโมงที่ดีในดีวีดี (คุณสามารถไปที่สูงขึ้นแน่นอน แต่ที่มักใบฉัน headroom ดีบนแผ่นดิสก์สำหรับการรวมไฟล์ AVI และภาพดังกล่าว)
บอน Gart

7

ฉันมีปัญหาคล้ายกันกับไฟล์ aac / h264 .mp4 ซึ่งเล่นได้ดีใน Windows Media Player (Windows 7) หลังจากที่ฉันแก้ไขใน VirtualDub และบันทึกในรูปแบบ. avi แล้วแปลงกลับเป็น aac / h264 .mp4 โดยใช้ค่าเริ่มต้น ffmpeg มันจะไม่เล่นใน Windows Media Player อีกต่อไป

เมื่อใช้ MediaInfo เพื่อเปรียบเทียบไฟล์ต้นฉบับและไฟล์สุดท้ายฉันสังเกตว่ามีการใช้โปรไฟล์การเข้ารหัสที่แตกต่างกันและการตั้งค่าการสุ่มตัวอย่าง Chroma ที่แตกต่างกัน (4: 2: 0, 4: 4: 4) สุดท้าย โดยการเข้ารหัสด้วย ffmpeg อีกครั้งโดยใช้ตัวเลือกต่อไปนี้ WMP สามารถเล่นไฟล์ได้อย่างถูกต้อง:

ffmpeg  -i edited.avi -pix_fmt yuv420p fixed.mp4

1
ดูtrac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayersที่กล่าวถึงการใช้-pix_fmt yuv420pและสนับสนุนแนวคิดนี้
ผู้ใช้

ฉันเพิ่งทดสอบสิ่งนี้บน Windows 10 เพียงแค่เพิ่ม-pix_fmt yuv420pฉันก็สามารถเปิด mp4 ในแอปพลิเคชัน Microsoft (ทั้งเครื่องเล่นในตัวและ Movie Maker)
Nux


0

เนื่องจากตัวแปลงสัญญาณทั้งสองรองรับคอนเทนเนอร์ AVI แล้วคุณสามารถทำได้

ffmpeg -i x.flv -vcodec copy -acodec copy x.avi

นั่นคือสมมติว่า XP ของคุณรองรับ h.264 มิฉะนั้นฉันจะไปกับไฟล์ wmv, ควอไลเซอร์เดียวกันและให้ ffmpeg เติมตัวแปลงสัญญาณ สิ่งนี้จะให้คุณภาพเกือบเหมือนเดิม:

ffmpeg -i x.flv -sameq x.wmv

2
ฉันสงสัยว่า XP ธรรมดารองรับ h.264
ThiefMaster

2
-sameqไม่ควรใช้เพื่อแปลงรูปแบบที่ไม่ได้ใช้สเกลของควอไลเซอร์ที่คล้ายกัน ตัวเลือกนี้ไม่ได้หมายถึง "คุณภาพเดียวกัน" เป็นเอกสารที่ใช้ในการบ่งบอก นอกจากนี้ไม่แนะนำให้ใช้ H.264 ใน AVI (แม้ว่าจะไม่สูญเสีย H.264 [ไม่ใช้เฟรม b] ก็ตาม)
llogan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.