วิธีติดตั้ง FFMPEG และการใช้งานเบื้องต้น

(1/20) > >>

อบเชยเฉยๆ:

ไปที่ https://ffmpeg.org/download.html แล้วเลือกดาวโหลดตามระบบปฏิบัติการ
อย่าง windows ก็หน้าต่างฟ้าๆ แล้วเลือกลิงก์มาสักอัน แนะนำอันบน เพราะอันบนๆเท่ากับดีย์


แล้วเราก็มองหาลิงก์ดาวน์โหลด แนะนำตัว Full ไปเลย กดโหลดมา


จากนั้นก็ทำการแตกไฟล์


จากนั้นเข้าโฟร์เดอร์ bin จะเห็น 3 ไฟล์


ให้เราก๊อบไปวางที่ โฟร์เดอร์ใหม่ ณ ไดร์ฟไหนก็ได้ตามใจ
ส่วนของผมเป็นไดร์ฟ C: และชื่อโฟร์เดอร์คือ FFMPEG


จากนั้นกดปุ่ม windows บนคีย์บอร์ด หรือก็คือปุ่ม start มุมซ้ายล่าง แล้วพิมพ์ไปว่า path
แล้วกดเข้าไปใน Edit the system environment variables


จากนั้นกด Environment Variables..


มองช่องล่าง คลิ๊ก 1 ที ที่ Path แล้วกด Edit..


กด Browse.. แล้วเลือกไดร์ฟและโฟร์เดอร์ที่เราเก็บ FFMPEG ไว้
แล้วก็กดโอเคยาวๆเลย


จากนั้นไปโฟร์เดอร์ไหนก็ได้สักโฟร์เดอร์นึ่ง
ในช่อง Address..


พิมพ์ไปว่า cmd แล้ว Enter จะเป็นการเรียก cmd จากช่อง address
ซึ่งจะใช้บ่อยในการทำงานกับ ffmpeg จำไว้ให้ดี


จากนั้นพิมพ์ไป ffmpeg แล้ว Enter


ถ้าขึ้นแบบนี้แปลว่าติดตั้งเรียบร้อยแล้ว

อบเชยเฉยๆ:
การแปลงไฟล์ โดยไม่ลดรายละเอียดไม่ลดคุณภาพไม่ลดขนาด ราวกับ 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 ที่คุณภาพเท่าเดิม แต่ขนาดเล็กลง เป็นอีกหนทางในการช่วยท่านๆเก็บสะสมครัฟ

Gulnwza:
ขอบคุณครับ

MAXMAXSIMUM:
ผมแปลงจาก ts ไป mp4 ได้นะ แต่แปลง wmv ไปเป็น mp4 ไม่ได้แฮะ

อบเชยเฉยๆ:
อ้างจาก: MAXMAXSIMUM ที่ กันยายน 22, 2022, 10:14:45 AM

ผมแปลงจาก ts ไป mp4 ได้นะ แต่แปลง wmv ไปเป็น mp4 ไม่ได้แฮะ


ลองอันนี้ ได้ผลยังไงมาแจ้งด้วย เพราะไฟล์ wmv มันเก่าและมีการเข้ารหัสไม่เหมือนไฟล์อื่นๆ
เหมือนมันจะเกิดก่อนการเข้ารหัส x264 ด้วยซ้ำ

โค๊ด:

ffmpeg -i input.wmv -c:v:1 copy output.mp4

ดีจังเลยมีคนมาช่วยทดสอบ เพราะบางไฟล์ผมไม่มี (ไม่รู้จะไปหาจากไหน)

นำร่อง

[0] ดัชนีข้อความ

[#] หน้าถัดไป