(อยากได้ต้องทำเอง) มาบันทึกรายการสวนอักษรไว้ฟังย้อนหลังด้วยตัวเองกันดีกว่า

12 April 2022 virusfowl

เท่าที่จำความได้คือรายการสวนอักษรนี่ฟังมาตั้งแต่สมัยมัธยม ช่วงไหนมีหนังสือที่น่าสนใจก็ต้องตื่นแต่เช้า (ตีสี่) มาฟังละ แถมไม่ได้ฟังกันง่ายๆ ด้วย ด้วยความที่ยังต้องฟังผ่านคลื่นวิทยุ (FM 100.5) ก็ต้องหาที่ที่คลื่นชัดๆ อีก ขนาดอยู่ในเมืองนะเนี่ย... จำได้ว่ามีปิดเทอมอยู่สักเทอมนึง ฟังทุกวันเลย จนกลายเป็นว่าต้องตื่นเช้าเป็นกิจวัตร นึกถึงแล้วก็ย้อนอดีตไปหาช่วงวัยที่รู้สึกชีวิตมีความสุข...

วันเวลาผ่านไป หนังสือเสียงก็มีให้หาฟังกันง่ายขึ้น ต้องขอบคุณคนในห้องสมุดที่พัฒนาอะไรๆ ให้ทันโลกกับเขา (ไม่นับที่ปัจจุบันยังรับหนังสือแค่จากแผ่น CD !) เราก็ห่างหายจากรายการสวนอักษรออกไป แต่ก็ยังแวะเวียนไปฟังอยู่เรื่อยๆ นะ เพียงแต่ถ้าช่วงไหนไม่เจอหนังสือเล่มที่ถูกใจ (เป็นพิเศษ) ก็จะหายไปเป็นพักๆ

จนมีอยู่ช่วงนึงที่กลับมาตามฟังอย่างจริงจัง และก็ไม่ได้ขยันตื่นมาฟังรายการสดๆ ได้ ประกอบกับสามารถฟัง FM 100.5 ผ่าน internet radio ได้แล้ว เราก็เลยมีโปรเจกต์บันทึกรายการไว้ฟังย้อนหลังด้วยตัวเองขึ้นมา น่าจะเกือบสิบปีก่อนได้แล้วมั้ง... โดยตอนั้นก็หาวิธีการอยู่หลายอย่าง จนไปจบที่โปรแกรม Total Recorder Professional ซึ่งสามารถเปิดหน้าเว็บ MCOT ได้โดยตรง และสามารถตั้ง schedule เพื่อบันทึกรายการเก็บไว้ได้...

ต่อมาโปรเจกต์นี้ก็ล้มเลิกไป เนื่องจากทาง MCOT มีช่องทาง official ที่ให้ฟังรายการย้อนหลังได้บนเว็บของทาง MCOT เอง ถึงหน้าตา player จะใช้งานยากมากก็เถอะ...

จนมาถึงปัจจุบัน จากที่รายการย้ายเวลาไปเป็น 03:00 - 04:00 น. และเหมือนว่าเกือบจะยุติไปแล้วด้วยซ้ำ จนกลับมามาได้เวลาเดิมคือ 04:00 - 05:00 น. เราก็นึกถึงรายการนี้อีกครั้ง และพบว่าระบบรายการย้อนหลังไม่ได้อัพเดตตั้งแต่ปลายปี 2563 ซึ่งไม่แน่ใจว่าย้าย/เปลี่ยนช่องทาง หรือเลิกไปเฉยๆ หรือว่ายังไง ก็เลยลองหาวิธีบันทึกรายการเอาไว้ฟังเองดีกว่า ตามหัวข้อโพสต์...

หมายเหตุ: จริงๆ แล้ว รายการได้ส่งไฟล์หนังสือเสียงไปให้ทางห้องสมุดอยู่แล้วเป็นประจำ (เข้าใจว่าน่าจะรายปี) แต่เนื่องจากกระบวนการนำหนังสือขึ้นระบบที่ไม่แน่ใจว่าติดขัดปัญหาอะไร เราจึงไม่สามารถมั่นใจได้เลยว่าเราจะได้ฟังหนังสือเสียงจากสวนอักษรเมื่อไหร่ ดังนั้นการบันทึกเก็บไว้ฟังเองจึงเป็นวิธีที่มั่นใจได้มากกว่า...


** สิ่งที่ต้องมี **

  1. คอมพิวเตอร์ ซึ่งในที่นี้จะยกตัวอย่างแค่บนระบบปฏิบัติการ Windows เป็นหลัก
  2. อินเทอร์เน็ต เพราะต้องดึงสัญญาณการถ่ายทอดสดมาบันทึกเก็บไว้
  3. ต้องสามารถเปิดคอมพิวเตอร์ไว้ในเวลาที่รายการออกอากาศจริงๆ คือ 04:00 - 05:00 น.
  4. โปรแกรม FFMPEG ซึ่งเป็น command line tools สำหรับงาน multimedia เอาไว้ใช้แปลงไฟล์ต่างๆ
  5. URL streamming ของคลื่น FM 100.5 ซึ่งที่เราใช้อยู่คือ http://rstream.mcot.net:8000/fm1005 (อย่าเปลี่ยนบ่อยนะคร้าบ ขี้เกียจมานั่งตามล่า)

how to download FFMPEG

สำหรับ 3 ข้อแรก คงไม่สามารถช่วยอะไรได้หากใครไม่มี ส่วนข้อ 4. อันนี้อาจต้องแนะนำกันไว้นิดนึง เพราะก็เป็นโปรแกรมที่งงๆ เพราะเว็บทางการ ไม่เห็นมีของ Windows ให้โหลดเลย.. โดยเราก็ Google เอาทุกครั้งที่รู้สึกว่าต้องหาเวอร์ชันใหม่มาลง (รวมถึงขณะที่เขียนโพสต์นี้อยู่ด้วยเช่นกัน ก็เพิ่งเห็นว่ามีเวอร์ชันล่าสุดของปีนี้ออกมาแล้ว)

ล่าสุดที่เจอและคิดว่าไว้ใจได้ โหลดไม่ยากเกินไปก็จะเป็นของเว็บ Techspot https://www.techspot.com/downloads/6447-ffmpeg.html โดยเราสามารถเลือกระบบปฏิบัติการที่ต้องการโหลดมาใช้งานได้ด้วย เช่นเลือกเป็น สำหรับ Windows 64bit

เมื่อโหลดไฟล์มาแล้ว เราจะได้ zip file มา และเมื่อแตกไฟล์แล้ว ข้างในจะมีโฟลเดอร์ย่อยๆ อยู่ โดยไฟล์ที่เราต้องการคือ FFMPEG.exe จะอยู่ในโฟลเดอร์ bin อีกทีนึง ก็อปออกมาแค่ไฟล์เดียว ที่เหลือก็ตามแต่จะสะดวก (ลบไปเถอะ)

และเมื่อเรามีเครื่องมือครบถ้วนแล้ว ก็มาเริ่มกระบวนการกัน...

วิธีการสร้างไฟล์สคริปต์สำหรับบันทึกรายการสวนอักษร

กระบวนการคร่าวๆ คือ เราจะสร้าง schedule task แล้วสั่งให้รับไฟล์สคริปต์อันนี้อีกที ซึ่งวิธีสร้าง schedule จะอธิบายภายหลัง...

วิธีสร้างไฟล์สคริปต์คือเปิด notepad ขึ้นมา แล้วแปะโค้ดตามนี้ลงไป จากนั้นให้ save as ชื่อไฟล์ามด้วย .cmd หรือ .bat

@ECHO OFF %appdata%\NVDA\FFMPEG.EXE -i http://rstream.mcot.net:8000/fm1005 -t 01:00:00.00 -vn -ar 44100 -ac 1 -b:a 128k E:\Podcast\FM1005\FM1005-%date:~10,4%-%date:~4,2%-%date:~7,2%.mp3 exit

(มีทั้งหมด 3 บรรทัด) และจะอธิบายค่าในแต่ละตัวแปรให้เข้าใจด้านล่าง

  • @ECHO OFF //บรรทัดแรก มีไว้ทำไมไม่รู้แต่เห็นว่าต้องมี 555
  • %appdata%\NVDA\FFMPEG.EXE //full path ของไฟล์ FFMPEG.exe สมมติว่าเราวางไฟล์ FFMPEG.exe ไว้ในโฟลเดอร์ที่เก็บการตั้งค่าของโปรแกรม NVDA ก็จะใช้โค้ดตามนี้ ซึ่งส่วนนี้ไม่ได้กำหนดแต่อย่างใดว่าต้องวางไฟล์ FFMPEG.exe ไว้ที่ไหน ขอแค่ใส่ full path (ที่อยู่เต็มของไฟล์) ให้ถูกต้องก็เป็นพอ
  • -i http://rstream.mcot.net:8000/fm1005 //ส่วนนี้เป็นการกำหนด input ของไฟล์ที่เราต้องการแปลงด้วย FFMPEG ซึ่งก็คือ URL streamming ของ FM 100.5 นั่นเอง
  • -t 01:00:00.00 //ส่วนนี้เป็นการกำหนดระยะเวลา เนื่องจากถ้าเราไม่กำหนดโปรแกรมก็จะทำงานไปเรื่อยๆ เพราะการ streamming นั้นไม่ได้หยุด แต่หาเป็นการแปลงไฟล์ทั่วไปที่ต้องการแปลงไฟล์ทั้งหมด ก็จะไม่จำเป็นต้องระบุ ซึ่งค่าเวลาที่เราระบุก็คือ 1 ชั่วโมง ตามเวลาการออกอากาศของรายการสวนอักษรนั่นเอง
  • -vn //ส่วนนี้เป็นการระบุว่าไม่มีส่วนของการแปลง video
  • -ar 44100 //ส่วนนี้อยู่ในการกำหนดความละเอียดของไฟล์ อันนี้เป็นการกำหนด HZ ก็ใช้เป็น 44.1KHz ตามมาตรฐาน
  • -ac 1 //ac = audio channel ซึ่งกำหนดให้เป็น 1 = mono นั่นเอง ทั้งนี้เพื่อขนาดของไฟล์ที่เล็กลง เพราะถ้าหากเราแปลงเป็น stereo ไฟล์ก็จะมีขนาดใหญ่ขึ้นเท่าตัวซึ่งไม่จำเป็นสำหรับหนังสือเสียง
  • -b:a 128k // bitrate audio หน่วยเป็น KBPS ซึ่งอันนี้จริงๆ หากใครไม่ซีเรียส สามารถลดไปบันทึกที่ 64k ก็ยังได้ แต่ด้วยที่เห็นว่าจริงๆ รายการออกอากาศมาด้วยความละเอียดแถวๆ 192KBPS เราก็บันทึกเก็บไว้ที่ 128KBPS ตามมาตรฐานแล้วกัน ทั้งนี้การตั้งค่าความละเอียดตามตัวอย่างนี้จะใช้พื้นที่ประมาณไฟล์ละ 60MB
  • E:\Podcast\FM1005\FM1005-%date:~10,4%-%date:~4,2%-%date:~7,2%.mp3 //ส่วนสุดท้ายเป็นการกำหนด output ของไฟล์ที่แปลงด้วย FFMPEG ซึ่งตรงนี้มีรายละเอียดย่อยนิดหน่อย ซึ่งตามจริงแล้วแต่ละคนควรเปลี่ยนเป็นโฟลเดอร์ที่ตัวเองสะดวก
    • E:\Podcast\FM1005 //อันนี้ระบุให้เก็บไฟล์ไว้ใน Drive E: และอยู่ในโฟลเดอร์ย่อยคือ Podcast > FM1005
    • FM1005-%date:~10,4%-%date:~4,2%-%date:~7,2% //เป็นการกำหนดชื่อไฟล์ว่า FM1005-(ปี ค.ศ.)-(เดือน)-(วัน) เพื่อเวลาบันทึกหลายๆ วันชื่อไฟล์จะได้ไม่ซ้ำกันนั่นเอง
    • .mp3 //ส่วนสุดท้ายเป็นการกำหนดว่าเราต้องการให้ได้ออกมาเป็นไฟล์ MP3 นั่นเอง ซึ่งหากใครอยากได้เป็นไฟล์นามสกุลอื่นก็สามารถเปลี่ยนได้ตามสะดวก
  • exit //บรรทัดสุดท้ายเป็นการสั่งให้สคริปต์ปิดการทำงาน (เพราะทำงานเสร็จแล้ว)

OK เมื่อเรามีไฟล์สคริปต์กันแล้ว เราอาจจะทดลองดูก่อนว่าสคริปต์ของเราสามารถทำงานได้ถูกต้องไหม โดยแก้ระยะเวลา -t จาก 01:00:00.00 ให้สั้นลง อาจจะเหลือแค่สักนาทีนึงก็ได้ ก็จะเป็น -t 00:01:00.00 (วิธีแก้ไขไฟล์สคริปต์ให้คลิกขวาแล้วเลือก edit) เมื่อเรากด enter ที่ไฟล์สคริปต์ เราก็ควรจะได้ไฟล์จาก FM 100.5 ที่ออกอากาศอยู่ ณ เวลานั้นมาเป็นระยะเวลาตามที่แก้ไขไว้ ในโฟลเดอร์ที่ระบุ และในชื่อไฟล์ตามรูปแบบที่เราระบุ แต่หากสั่งรันสคริปต์แล้วไม่ได้ผลลัพธ์ตามที่ควร อันนี้จะยากแล้ว เพราะเราไม่สามารถบอกคุณได้ว่าปัญหามาจากอะไร วิธีคร่าวๆ อาจจะไปแก้บรรทัดที่ 3 ของไสคริปต์ จาก exit > pause แล้วดูว่าหน้าต่าง Command line ที่ยังค้างอยู่ไม่ได้ปิดตัวไป ถ้าเรายังไม่ได้กดปุ่มอะไรสักปุ่มให้มันปิดหน้าต่างนั้น ว่ามันแจ้ง error อะไร แล้วพยายามแก้ไขไปตามนั้น...

เอาเป็นว่าเราสมมติว่าคนที่อ่านและทำตามจะไม่เจอบั๊กอะไร และได้ไฟล์ที่บันทึกออกมาได้เรียบร้อยแล้วกันนะ Blum 3 อย่าลืมแก้โค้ดในสคริปต์กลับไปเป็นระยะเวลา 1 ชั่วโมงให้ถูกต้องเหมือนเดิม จากนี้เราจะแนะนำวิธีการนำไฟล์สคริปต์ไปสร้างเป็น schedule task กัน เพื่อที่เราจะได้ไม่ต้องมาคอยกดสคริปต์เองตอนตีสี่ของทุกวัน...

how to create schedule task

    1. เข้าหน้า schedule task (หน้าจริงๆ ชื่อว่า task scheduler ต่างหาก) ตามแต่สะดวก วิธีที่เราว่าง่ายที่สุดก็คือกดปุ่ม start แล้วพิมพ์จนกว่าจะได้คำว่า schedule task ขึ้นมา ซึ่งตรงนี้ขึ้นอยู่กับการเรียนรู้พฤติกรรมของแต่ละเครื่อง ของเราพิมพ์แค่ sc ก็กดเข้าได้เลย...
    1. กด alt+a เข้า action menu แล้วกด r เพื่อเลือก create task
    1. ใน tab แรกของการ create task (general tab) ประกอบไปด้วย
    • 3.1 name ส่วนนี้ต้องใส่ เป็นการกำหนดชื่อของ task ที่เราจะสร้างนั่นเอง
    • 3.2 description ส่วนนี้จะใส่หรือไม่ใส่ก็ได้ตามแต่สะดวก
    • 3.3 ถัดมาเป็นส่วนของ security อันแรกคือ Change User or Group ก็ไม่ต้องไปแก้มัน
    • 3.4 ถัดมาค่าปริยายจะเลือกไว้ที่ Run only when user is logged on radio button checked ซึ่งจริงๆ เลือกอันนี้ก็ไม่เป็นอะไร สามารถทำงานได้ แต่เราแนะนำว่าให้เลื่อนลงเลือกเป็น Run whether user is logged on or not radio button checked จะดีกว่า ด้วยเหตุผลในข้อถัดไป...
    • 3.5 Do not store password. The task will only have access to local computer resources. check box focused not checked สังเกตว่าค่าปริยายจะไม่ติ๊กไว้ ซึ่งถ้าหากเราไม่ติ๊ก เมื่อเสร็จสิ้นการสร้าง task ระบบจะถาม user name + password ของบัญชีที่เราล็อกอินเข้าใช้งาน Windows ซึ่งอาจจะไม่ค่อยสะดวกนัก (และไม่ค่อยปลอดภัยด้วย) ดังนั้นเราแนะนำให้ติ๊กข้อนี้ จะง่ายกว่า เพราะระบบจะดึงค่าความปลอดภัยมาใช้งานโดยตรง
    • 3.6 Run with highest privileges check box not checked ข้อนี้ก็เช่นกันค่าปริยายจะไม่ได้ติ๊กไว้ให้ ซึ่งอันนี้ก็แล้วแต่เราว่าจะติ๊กไหม แต่แนะนำก็คือติ๊กไว้เถอะดีกว่าชัวร์กว่า 55
    • 3.7 Hidden check box not checked อันนี้เป็นข้อสำคัญที่เราแนะนำให้เลือกตามจากข้อ 3.4 ถ้าไม่เลือกตามนั้น จะไม่พบตัวเลือกในข้อนี้ ซึ่งข้อดีของการติ๊ก hidden ก็คือ เวลาที่ task run มันจะไม่มีหน้าต่าง command line โผล่ขึ้นมาให้เรารำคาญ
    • 3.8 ที่เหลือก็ไม่มีอะไรต้องแก้ ไปหน้าถัดไปกันเลย
    1. Triggers tab ในหน้านี้เป็นการกำหนดว่าเราจะสั่งให้ task run เมื่อไหร่ อย่างไร โดยเมื่อเรากด new ขึ้นมา ก็จะมีตัวเลือกต่างๆ มากมาย
    • 4.1 daily ก็คือสั่งให้ทำงานทุกวัน ซึ่งถ้าใครอยากบันทึกเก็บไว้ทุกวัน ใช้ตัวเลือกนี้ก็สะดวกดี โดยค่าที่ต้องแก้ไขก็คือเวลา เราต้องไปตั้งเวลาให้เป็น 04:00:00 ตามเวลาออกอากาศของรายการสวนอักษรนั่นเอง
    • 4.2 weekly หรือถ้าหากบันทึกเฉพาะบางวันที่ต้องการเก็บไว้ฟังเท่านั้น ก็เลือกตัวเลือกนี้ได้ โดยระบุวัน และแก้ไขเวลาเช่นเดียวกับข้อ 4.1 และหากอยากให้บันทึกวันอื่นๆ ด้วย ก็สามารถ กด new เพิ่มวันอื่นๆ ได้อีกด้วย ก็เป็นการสั่งให้รันเป็นวันๆ ไปนั่นเอง
    1. action tab หน้านี้เป็นส่วนสำคัญเพราะเป็นหน้าที่กำหนดว่าเราจะสั่งให้ task ทำอะไร โดยเมื่อเรามีไฟล์สคริปต์อยู่แล้ว วิธีก็จะไม่ยาก เมื่อกด new แล้วเราก็ใส่ full path ของไฟล์สคริปต์ที่เราสร้างไว้แล้วลงไปในช่อง program / script ได้เลยนั่นเอง
    1. เมื่อจัดการกับ 3 tab หลักๆ ตามที่อธิบายไปเรียบร้อยแล้ว ก็ให้กด OK บันทึกค่าทั้งหมดให้เรียบร้อย เพียงเท่านี้เราก็จะได้ schedule task สำหรับการบันทึกรายการสวนอักษรไว้ฟังย้อนหลังกันเองแล้ว (เย้...)

โดยอย่างที่บอกไปตอนต้น ว่าเราจำเป็นจะต้องเปิดคอมทิ้งไว้ เพื่อให้ task ทำงานได้ในเวลาตีสี่... แต่ถ้าหากใครใช้คอมใหม่ๆ ที่มีระบบที่ Windows สามารถทำงานบางอย่างได้ในขณะ stand by ก็อาจจะลองดู ผู้เขียนก็ไม่แน่ใจเหมือนกัน ณ จุดนี้ เพราะคอมเก่า 5555