การใช้งานเบื้องต้น
ท่านสามารถไปถามพวก AI อย่าง Chat GPT
หรือ Bard Google ในส่วนที่ท่านต้องการจะทำกับไฟล์มีเดียที่ท่านเอาได้เลย
AI จะตอบมาค่อนข้างตรง ถ้าคำถามไม่ชวนงงจนเกินไป
ส่วนใหญ่ท่านก็แทนค่าด้วย ชื่อไฟล์ขาเข้า (input) และ ชื่อไฟล์ขาออก (output)
ตามที่่ AI ให้โค๊ดเรามา
##############################################################
การแปลงไฟล์ โดยไม่ลดรายละเอียดไม่ลดคุณภาพไม่ลดขนาด ราวกับ copy-paste
ให้เราเข้าโฟร์เดอร์เก็บไฟล์ต้นทาง
เรียก cmd ขึ้นมาจากช่อง address
แล้วใช้ ffmpeg แปลงไฟล์โดยใช้โค๊ดข้างล่าง
ตัวอย่างเช่น
แปลงไฟล์ .ts ไป .mp4
ffmpeg -i input.ts -c:v copy -c:a copy output.mp4
แปลงไฟล์ .mp4 ไป .mkv
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mkv
แปลงไฟล์ .avi ไป .mkv
ffmpeg -i input.avi -c:v copy -c:a copy output.mkv
แปลงไฟล์ .mkv ไป .mp4
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
แปลงไฟล์ .wmv ไป .mp4
ffmpeg -i input.wmv -c:v libx264 -crf 23 output.mp4
ตรง -crf 23 จริงๆแล้วสามารถใส่ crf ตั้งแต่ 0 ถึง 51
ซึ่ง 0 หมายถึง lossless และ 51 คือ poorest
ตรง -c:v libx264 ถ้าท่านมีการ์ดจอค่ายเขียว 1050ti ขึ้นไป สามารถใช้ -c:v h264_nvenc แทนได้
แปลงไฟล์ .mov ไป .mp4
ffmpeg -i input.mov -c:v libx264 -crf 23 output.mp4
ตรง -crf 23 จริงๆแล้วสามารถใส่ crf ตั้งแต่ 0 ถึง 51
ซึ่ง 0 หมายถึง lossless และ 51 คือ poorest
ตรง -c:v libx264 ถ้าท่านมีการ์ดจอค่ายเขียว 1050ti ขึ้นไป สามารถใช้ -c:v h264_nvenc แทนได้
##############################################################
ใช้ ffmpeg ฝังซับง่ายๆและไวมากโคตรจะประหยัดเวลา
ให้เราเข้าโฟร์เดอร์เก็บไฟล์ต้นทาง แล้วนำเอาไฟล์ซับมาไว้ในนี้ด้วย
จากนั้นเรียก cmd ขึ้นมาจากช่อง address
แล้วใช้ ffmpeg ฝังซับโดยใช้โค๊ดข้างล่าง
ตัวอย่างเช่น
ฟังซับไฟล์ .srt
ffmpeg -i input.mp4 -f srt -i inputsubtitle.srt -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy -c:s mov_text output.mp4
ฟังซับไฟล์ .ass
ffmpeg -i input.mp4 -f ass -i inputsubtitle.ass -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy -c:s mov_text output.mp4
inputsubtitle คือชื่อไฟล์ซับที่เราจะฝัง
##############################################################
การฝังฮาร์ดซับก็ทำได้ครับ แต่ต้อง Encode ใหม่
แนะนำให้มีการ์ดจอค่ายเขียว 1050ti ขึ้นไปจะช่วยได้
ให้เราเข้าโฟร์เดอร์เก็บไฟล์ต้นทาง แล้วนำเอาไฟล์ซับมาไว้ในนี้ด้วย
จาทกนั้นให้เราหาโหลด Font THSarabunNew
https://staff.su.ac.th/Misweb/download/THSarabunNew.zipจากนั้นเรียก cmd ขึ้นมาจากช่อง address
แล้วใช้ ffmpeg ฝังซับฮาร์ดโดยใช้โค๊ดข้างล่าง
ffmpeg -i INPUT.mp4 -filter:v fps=60 -vf "subtitles=INPUTSUB.srt:force_style='fontname=THSarabunNew,fontsize=24,fontstyle=bold'" -c:v h264_nvenc -profile:v high -preset slow -crf 15 -b:v 8M -minrate 8M -maxrate 8M -bufsize 6M -c:a copy OUTPUT.mp4
##############################################################
วิธีทำ Gif ด้วย ffmpeg ภาพสวยๆชัดๆขนาดพอดีๆ และที่สำคัญไวมาก
ให้เราเข้าโฟร์เดอร์เก็บไฟล์ต้นทาง
เปิดหนังขึ้นมาแล้วทำการจดเวลานาทีที่ต้องการ
เรียก cmd ขึ้นมาจากช่อง address
แล้วใช้ ffmpeg ทำ Gif
ตัวอย่างเช่น
ffmpeg -ss 02:23:05 -t 10 -i STARS-599.mp4 -filter_complex "[0:v] fps=12,scale=w=480:h=-1,split [a][b];[a] palettegen=stats_mode=single [p];[b][p] paletteuse=new=1" STARS-599EATRICE.gif
อธิบายเพิ่มเติมคือ ผมสั่งให้ ffmpeg ข้ามไปที่นาที 02:23:05
แล้วเริ่มต้นจับภาพไปอีก 10 วิ จากเรื่อง STARS-599.mp4
ทำอัตราเฟรมเรทอยู่ที่ 12 เฟรมต่อวิ
ขนาด 480p แต่งภาพแต่งสีนิดหน่อยไม่ให้ภาพมันแตกและออกมาสวย
แล้วก็จะได้ออกมาเป็น STARS-599EATRICE.gif
และนี่คือรูป gif ที่ผมสั่งให้ ffmpeg ทำออกมา
##############################################################
เราสามารถใช้ ffmpeg ตัดหนังผ่านการคำนวนเวลาได้ ก่อนอื่นให้เราเข้าไปที่โฟร์เดอร์เรื่องที่ต้องการตัด
เรียก cmd ขึ้นมาจากช่อง address แล้วคำนวนจดเวลาของฉากที่ต้องการ
เช่น ในเรื่อง STARS-703 ผมต้องการตัดจากนาทีที่ 01:21:46 จนถึง 01:24:28 เก็บไว้ดูเล่นๆ
ให้เอาเวลาลาสุดท้ายตั้ง 01:24:28 ลบด้วยเวลาเริ่ม 01:21:46 จะได้เวลา -to = 00:02:42
และนี่คือตัวอย่าง
ffmpeg -ss 01:21:46 -i STARS-703.mp4 -to 00:02:42 -c:v copy -c:a copy STARS-703TESTCUT.mp4
##############################################################
เราสามารถใช้ ffmpeg รวมไฟล์ได้
ก่อนอื่นเอาไฟล์ที่จะรวมมาไว้โฟร์เดอร์เดียวกัน
แล้ว cmd ขึ้นมาจากช่อง address ขั้นแรกให้สร้าง mylist.txt โดยพิมพ์
(for %i in (*.mp4) do @echo file '%i') > mylist.txt
เราก็จะได้ ไฟล์ mylist.txt อยู่ในโฟร์เดอร์ ซึ่งข้างในมันจะเรียงตามชื่ออักษรไฟล์ย่อย
ที่เราจะรวมในขั้นตอนต่อไปโดย ffmpeg
ffmpeg -f concat -i mylist.txt -c copy output.mp4
##############################################################
ถ้าท่านประสบกับปัญหาฮาร์ดดิกส์เต็ม ไฟล์ใหญ่
ต้องการย่อไฟล์ให้เล็กแต่คุณภาพเท่าๆเดิม
ให้ท่านเรียก cmd จากช่อง address แล้วใช้คำสั่งนี้
ffmpeg -i input.mp4 -c:v libx265 -vtag hvc1 -c:a copy output.mp4
ท่านก็จะได้ไฟล์ในรูปแบบ x265 ที่คุณภาพเท่าเดิม แต่ขนาดเล็กลง เป็นอีกหนทางในการช่วยท่านๆเก็บสะสมครัฟ