Update:

เนื่องจาก MX Player ตั้งแต่เวอร์ชัน 1.7.6 เป็นต้นมาต้องการ Plug-in จาก Source เวอร์ชันใหม่ ผมเลยคอมไพล์และลองใช้งานบน A500 แล้วใช้งานได้ เลยคอมไพล์เวอร์ชัน neon มาให้ด้วย เผื่อท่านใดจะลองใช้นะครับ

mxplayer-1.76_up-ffmpeg-libs-tegra2-build.zip (http://www.mediafire.com/?tor8lyffcxdoqrb)

mxplayer-1.76_up-ffmpeg-libs-neon-build.zip (http://www.mediafire.com/?man9cjv8zahdvl4)

——————————————————————————————————–

(สำหรับผู้ใช้ MX Player ที่ใจร้อน ให้ Download ไฟล์ข้างล่างนี้แล้ววิ่งไปข้อ 8 ได้เลยจ้ะ)

mxplayer-1.7-beta_ffmpeg-libs-tegra2-build.zip (http://www.mediafire.com/?o56ecmrkrfbtjgb)

สำหรับ DicePlayer ให้เลื่อนลงไปด้านล่างๆ นะจ๊ะ
——————————————————————————————————–

ท่านที่ใช้น้องแอนดรอยด์ดูหนังที่มีระบบเสียงเป็นแบบ DTS คงพอทราบกันว่า ช่วงหลังๆ มานี้ โปรแกรมดูหนังที่ได้รับความนิยมหลายๆ ตัว เช่น DicePlayer หรือ MX Player (https://play.google.com/store/apps/details?id=com.inisoft.mediaplayer.a) ได้ถอดความสามารถในการถอดรหัสเสียงแบบ DTS ออกจากโปรแกรม เนื่องจากปัญหาด้านลิขสิทธิ์**

[** อันนี้ขอขยายความจากข้อความของผู้ผลิตโปรแกรม DicePlayer (http://forum.xda-developers.com/showpost.php?p=30196191&postcount=13)

DTS deny to sell thier products to sw player makers.
We already contact them to buy license. But they refuse to sell.
They want to sell DTS license to hw vendor like samsung.

คือทางคนทำ DicePlayer ได้ติดต่อขอซื้อลิขสิทธิ์การใช้งานจาก DTS แต่ DTS ปฏิเสธการขายลิขสิทธิ์ให้ผู้ผลิตซอฟท์แวร์ โดยต้องการขายให้กับผู้ผลิตฮาร์ดแวร์เช่น Samsung แทน (ผมเข้าใจว่าทาง MX Player และรายอื่นๆ คงโดนปฏิเสธเหมือนกัน) ก็เลยจำต้องตัดความสามารถด้าน DTS ออกจากโปรแกรม**]

ทำให้โปรแกรมดูหนังที่เราๆ ติดตั้งลงไป ไม่สามารถเล่นเสียง DTS ได้ โดยเราอาจจะเลี่ยงปัญหาได้โดยการใช้โปรแกรมเวอร์ชันเก่าที่ยังสนับสนุน DTS อยู่ แต่ปัญหาที่ผมเจอตามมาคือ โปรแกรมเวอร์ชันเก่ามันไม่สนับสนุน Jelly Bean -_-‘

แต่โปรแกรมบางตัวเช่น DicePlayer และ MX Player (beta) ก็มีตัวเลือกที่ให้ผู้ใช้งานสามารถเพิ่ม External Codec เองได้ ทำให้เราสามารถเพิ่ม Codec ที่สามารถถอดรหัส DTS ได้นั่นเอง บางท่านอาจสงสัยว่า ถ้าเราทำแบบนั้นหมายความว่าเราละเมิดลิขสิทธิ์ DTS ใช่มั้ย? คำตอบคือใช่ครับ แล้วถ้าเราใช้ เราจะโดนจับหรือเปล่า? ถ้าเราใช้เป็นการส่วนตัว คงไม่มีใครมาไล่จับเรา แต่ถ้าเราเริ่มทำเงินจากการใช้งานมัน เช่นเขียนโปรแกรมขาย ก็จะเริ่มโดนครับ

โดย Plug in ที่ทางคนทำโปรแกรมสนับสนุนนั้นก็คือ ffmpeg โดยผมจะขออ้างอิงกับโปรแกรม MX Player เนื่องจากหนังที่ผมลองนั้น โปรแกรม DicePalyer ไม่สามารถเล่นได้ -_-‘ โดยโปรแกรม MX Player ที่สนับสนุน External Codec นั้น ในปัจจุบันจะเป็นเวอร์ชันเบต้าที่สามารถ Download ได้จากเว็บไซท์ของผู้พัฒนา (https://sites.google.com/site/mxvpen/translation/test-build)

ส่วนวิธีคอมไพล์ ffmpeg codec libs สำหรับ MX Player ก็มีคร่าวๆ ดังนี้ครับ (ผมทำบน Linux นะจ๊ะ)

1. Download ffmpeg.7z (https://sites.google.com/site/mxtechglobal/ffmpeg.7z?attredirects=0) จากเว็บ MX Player

2. Download และติดตั้ง Google Android NDK (http://developer.android.com/tools/sdk/ndk/index.html)

3. Extract ไฟล์ ffmpeg.7z

4. แก้ไขไฟล์ config-ffmpeg.sh,
— เปลี่ยนค่าตัวแปร “NDK” ให้ชี้ไปยัง Path ของ NDK ที่เราติดตั้ง
— ลบ Option “-DMXTECHS” จาก –extra-cflags และ “-lmxutil” จาก –extra-ldflags
— enable option ที่ต้องการโดยเปลี่ยนจากคำว่า disable เป็น enable ผมทำการเปลี่ยนประมาณนี้

–enable-demuxer=srt
–enable-demuxer=sami
–enable-demuxer=dts
–enable-decoder=ass
–enable-decoder=srt
–enable-decoder=subrip
–enable-decoder=dca

5. แก้ไขไฟล์ build-ffmpeg.sh, เปลี่ยน path ของตัวแปร TARGET1 และ TARGET2 ตามต้องการ (สำหรับผมเอง ต้องทำการสร้าง directory เตรียมไว้ก่อน เช่น ถ้าใช้ default path ผมต้องสั่ง ‘mkdir -p libs/armeabi-v7a/vfpv3-d16’ และ ‘mkdir -p libs/output/ffmpeg_v7_vfpv3d16/armeabi’ ก่อนจะ build ไม่อย่างนั้นจะมี error ไม่สามารถ copy file ได้)

6. รันไฟล์ “build-ffmpeg.sh” ตามด้วย parameter ตัวใดตัวหนึ่ง (neon, tegra2, v6_vfp, v6, v5te, x86, mips) ในกรณีของเราเป็น cpu tegra2 ก็จะเป็น “sh build-ffmpeg.sh tegra2”

7. หลังจากคอมไพล์เสร็จ เราก็จะได้ไฟล์ library ต่างๆ อยู่ใน directory ที่เราเลือกไว้ โดยทั้ง 2 directory มีไฟล์ต่างๆ เหมือนกัน เราก็เลือกสัก directory หนึ่ง copy ไปไว้ใน A500 ของเรา

8. ติดตั้ง MX Player beta และ Codec (ARMv7) beta ที่ Download มา

9. เข้า Setting เพื่อเลือก External Codec

http://image.ohozaa.com/view2/wjn4QOwrbMNTnM85

http://image.ohozaa.com/view2/wjn4Rav7tljK2egU

10. เพลิดเพลินกับหนังเรื่องโปรด
http://image.ohozaa.com/view2/wjnon3WLhgaZpEZF

11. สำหรับท่านที่ไม่สะดวก หรือไม่อยากจะ build codec เอง ก็สามารถ Download ไฟล์ codec ที่ผม build ได้ด้านล่างครับ

mxplayer-ffmpeg-libs-tegra2-build.zip (http://www.mediafire.com/?6nkb27x65yt6r3b)

โดย Codec ที่ผม build นี้ ใช้สำหรับ cpu tegra2 ซึ่งอุปกรณ์ตัวอื่นๆ ที่ใช้ cpu tegra2 เหมือนกัน เช่น Galaxy Tab 10.1, LG Optimus 2X, Motorola XOOM, ASUS Transformer TF101 ก็น่าจะสามารถนำไปใช้ได้ครับ

——————————————————————————————————–

สำหรับ DicePlayer นั้น ผมลองอ่านวิธีทำจากเว็บของผู้พัฒนาแล้วแต่ไม่เข้าใจ ท่านใดอ่านลองอ่านแล้วทำตามได้ ก็รบกวนเผยแพร่เป็นวิทยาทานหน่อยนะครับ ระหว่างนี้ก็มาใช้วิธีดึง codec เก่าที่สนับสนุน DTS มาใช้เป็น custom plug in กันไปพลางๆ ก่อน วิธีนี้เป็นวิธีที่ผู้พัฒนาแนะนำเองเลยทีเดียว โดยมีขั้นตอนคร่าวๆ ประมาณนี้

1. Extract ไฟล์ codec plug in เวอร์ชันเก่าที่สนับสนุน DTS โดยเวอร์ชันล่าสุดที่สนับสนุนคือ 2.0.6 ใครหาไม่ได้ก็เอาจากที่นี่นะครับ

DicePlayer v2.0.6-plugin-tegra2.apk (http://www.mediafire.com/?mjlgskqjehwvltv)

2. ในไดเร็กทอรีชื่อ lib จะมีไฟล์ libffmpeg_dice.so ให้ rename เป็น libffmpeg.so

3. copy ไฟล์ libffmpeg.so ดังกล่าว ไปไว้ที่ /sdcard

4. เปิดโปรแกรม DicePlayer เข้า setting, ติ๊กเครื่องหมายถูกตรง custom plugin

http://image.ohozaa.com/view2/wjuUbu42TXvD7UYh

5. เพลิดเพลินกับหนังเรื่องโปรด

จบแล้วจ้า ใครลองทำแล้วได้ผลเป็นอย่างไร ก็มาเล่าสู่กันฟังบ้างนะครับ

อ้างอิง

xda: DTS Audio for android == LAWSUIT
http://forum.xda-developers.com/showthread.php?t=1831111

MX Player
https://sites.google.com/site/mxvpen/

ffmpeg
http://ffmpeg.org

DicePlayer Technical Note
http://diceplayer.inisoft.co.kr/technical-note

DicePlayer forum: DTS Issues
https://groups.google.com/forum/?fromgroups=#!topic/diceplayer/KzbX2JBwOtY