2 คะแนน โดย GN⁺ 2024-09-25 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

Winamp

แนะนำ

  • Winamp เป็นโปรแกรมเล่นมัลติมีเดียที่เปิดตัวในปี 1997 และมีชื่อเสียงในด้านความเข้ากันได้กับฟอร์แมตเสียงที่หลากหลายและความยืดหยุ่น
  • พัฒนาโดย Nullsoft และได้รับความนิยมอย่างมากในหมู่ผู้ใช้หลายล้านคน
  • การพัฒนาเคยหยุดไปช่วงหนึ่ง แต่ตอนนี้ได้เปิดเผยซอร์สโค้ดแล้ว ทำให้ชุมชนสามารถปรับปรุงและทำให้โปรแกรมเล่นนี้ทันสมัยขึ้นได้

วิธีใช้งาน

  • การบิลด์ Winamp เดสก์ท็อปไคลเอนต์ ปัจจุบันอิงตาม Visual Studio 2019 (VS2019) และไลบรารี Intel IPP
  • มีหลายวิธีในการบิลด์ Winamp
    1. ใช้ไฟล์สคริปต์ build_winampAll_2019.cmd เพื่อบิลด์ 4 เวอร์ชันของ x86/x64 (ดีบักและรีลีส) ในกรณีนี้ Visual Studio IDE จะไม่ถูกเปิดใช้งาน
    2. ใช้ไฟล์ winampAll_2019.sln เพื่อบิลด์และดีบักภายใน Visual Studio IDE

การพึ่งพา

  • ใช้ไฟล์สคริปต์ build_winampAll_2019.cmd เพื่อบิลด์ 4 เวอร์ชันของ x86/x64 (ดีบักและรีลีส) ในกรณีนี้ Visual Studio IDE จะไม่ถูกเปิดใช้งาน
  • ใช้ไฟล์ winampAll_2019.sln เพื่อบิลด์และดีบักภายใน Visual Studio IDE
libvpx
  • libvpx ถูกนำมาจาก https://github.com/ShiftMediaProject/libvpx แล้วปรับแก้ก่อนแพ็กเป็นอาร์ไคฟ์
  • รัน unpack_libvpx_v1.8.2_msvc16.cmd เพื่อแตกไฟล์
libmpg123
  • libmpg123 ถูกนำมาจาก https://www.mpg123.de/download.shtml แล้วปรับแก้ก่อนแพ็กเป็นอาร์ไคฟ์
  • รัน unpack_libmpg123.cmd เพื่อจัดการไฟล์ dll
OpenSSL
  • ต้องใช้ openssl-1.0.1u
  • ให้รัน build_vs_2019_openssl_x86.cmd และ build_vs_2019_openssl_64.cmd เพื่อบิลด์ไลบรารีเวอร์ชันสแตติก
  • ในการบิลด์ OpenSSL จำเป็นต้องติดตั้ง 7-Zip, NASM และ Perl
DirectX 9 SDK
  • DirectX 9 SDK (มิถุนายน 2010) ถูกนำมาจาก Microsoft แล้วปรับแก้ก่อนแพ็กเป็นอาร์ไคฟ์
  • รัน unpack_microsoft_directx_sdk_2010.cmd เพื่อแตกไฟล์
การแก้ไข Microsoft ATLMFC lib
  • ในไฟล์ C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.h ให้เปลี่ยนบรรทัดที่ 427 จาก return ::DeleteFile((LPTSTR)lpFileName); เป็น return DeleteFile((LPTSTR)lpFileName);
Intel IPP 6.1.1.035
  • นำ Intel IPP 6.1.1.035 มาปรับแก้แล้วแพ็กเป็นอาร์ไคฟ์
  • รัน unpack_intel_ipp_6.1.1.035.cmd เพื่อแตกไฟล์

สรุปโดย GN⁺

  • Winamp ยังคงเป็นที่รักของผู้ใช้จำนวนมาก เนื่องจากรองรับฟอร์แมตเสียงที่หลากหลาย
  • การเปิดเผยซอร์สโค้ดทำให้ชุมชนมีโอกาสปรับปรุงและทำให้โปรแกรมเล่นนี้ทันสมัยขึ้น
  • สามารถบิลด์ได้ด้วย Visual Studio 2019 และไลบรารีหลายตัว โดยต้องจัดการกับ dependency ต่าง ๆ
  • โปรแกรมเล่นมัลติมีเดียอื่นที่มีฟังก์ชันคล้าย Winamp ได้แก่ VLC Media Player และ foobar2000

2 ความคิดเห็น

 
wedding 2024-09-25

ดูจากประเด็นแล้ว เหมือนจะมีการถกเถียงกันเรื่องไลเซนส์เยอะพอสมควร

 
GN⁺ 2024-09-25
ความคิดเห็นจาก Hacker News
  • ตั้งคำถามเกี่ยวกับวิธีมีส่วนร่วมในโปรเจกต์

    • ข้อ 4 ของไลเซนส์ระบุว่าสนับสนุนให้มีการมีส่วนร่วมด้วยการปรับปรุง เพิ่มประสิทธิภาพ และแก้บั๊กให้โปรเจกต์
    • แต่ข้อ 5 กลับห้ามการฟอร์กโค้ดหรือการแจกจ่ายเวอร์ชันที่แก้ไขแล้ว
    • เวิร์กโฟลว์มาตรฐานของ GitHub จึงกลายเป็นการละเมิดไลเซนส์
    • ตอนนี้ทางเลือกที่ดีที่สุดคืออย่าเพิ่งเข้าร่วมโปรเจกต์
    • จะกลับมาตรวจสอบอีกครั้งหากมีการเปลี่ยนไลเซนส์
  • ความทรงจำเกี่ยวกับ Justin Frankel ใน #mpeg3 ของ EFNet

    • เคยทำสกินและไอคอนถาดระบบสำหรับใช้กับแอป
    • มีชื่ออยู่ในเครดิต
  • คำขอ DMCA และปัญหาลิขสิทธิ์

    • น่าจะต้องยื่นคำขอ DMCA ไปที่ GitHub จำนวนมาก
    • การฟอร์กเป็นฟีเจอร์พื้นฐานของ GitHub
    • แต่ไลเซนส์ไม่อนุญาตให้ฟอร์ก
    • มีความเสี่ยงที่จะสูญเสียลิขสิทธิ์
    • ศาลน่าจะกำหนดให้ต้องปกป้องสิทธิอย่างจริงจัง
    • ประสบการณ์ใช้งาน GitHub จะแย่ลง
  • ประวัติส่วนตัวกับ Winamp

    • เคยเขียนปลั๊กอินยอดนิยมในอดีต
    • ซอร์สโค้ดของ Winamp 3 ถูกเขียนใหม่ทั้งหมดด้วย C++
    • ซอร์สโค้ดต้นฉบับเดิม Justin Frankel เขียนด้วย C
  • ปาร์ตี้ MP3 สมัยเรียนมหาวิทยาลัยในปี 1999

    • ใช้ MP3 แทนเครื่องสลับแผ่น CD
    • เปิดเพลงแบบสุ่มด้วย Winamp
    • สนุกกับปาร์ตี้ได้โดยที่เพลงไม่สะดุด
    • ขอบคุณ Winamp
  • การโอเพนซอร์สที่ชวนสับสน

    • การโอเพนซอร์สซอฟต์แวร์นี้ชวนสับสนมาก
  • เครื่องเล่นเพลงที่ใช้งานง่าย

    • มีอินเทอร์เฟซที่เรียบง่ายกว่าคู่แข่ง
    • ทำหน้าที่ของมันได้โดยไม่มีกราฟิกเกินจำเป็น
  • การบิดเบือนคำว่า "โอเพน"

    • เงื่อนไขของไลเซนส์ไม่อนุญาตให้แจกจ่ายต่อหรือขายต่อ
    • จึงควรเรียกว่า "source-available" มากกว่า "open source"
  • การแชร์ซอฟต์แวร์เซิร์ฟเวอร์ SHOUTcast อย่างผิดกฎหมาย

    • มีโค้ดที่ถูกแชร์อย่างผิดกฎหมายอยู่ในรีโพซิทอรี