การแปลงวิดีโอในพื้นหลังโดยใช้ออโตเมเตอร์และเบรกมือ


1

ฉันพยายามทำให้กระบวนการแปลงวิดีโอเป็นแบบอัตโนมัติโดยใช้ handbrake และ automator

นี่คือสคริปต์ที่ฉันใช้ในการดำเนินการ Run Shell Script ของ Automator Folder Action:

for f in "$@"
do
    Applications/HandBrakeCLI -i "$f" -t 1 \ 
    --angle 1 -c 1 -o "/Users/abc/Desktop/TestVidDest/$(basename $f)" \
    -f mp4  -4  -O  --decomb="fast" -w 1280 -l 720 --modulus 16 \
    -e x264 -b 3800 -2  -T  --cfr -a 1 -E faac -6 dpl2 -R 48 -B 128 \
    -D 0 --gain 0 --audio-fallback ffac3 --x264-preset=slow  \
    --x264-profile=high  --x264-tune="film"  --h264-level="4.0" \
    --verbose=1  &
done

ปัญหาคือเมื่อฉันเรียกใช้สคริปต์นี้ด้วยตนเองจาก Automator มันทำงานได้ดี แต่เมื่อมีการเพิ่มไฟล์ใหม่ในโฟลเดอร์สคริปต์นี้จะถูกเรียกใช้ แต่วิดีโอจะไม่ถูกแปลง ถ้าฉันลบ '&' ออกจากท้ายคำสั่งมันจะทำงานกับไฟล์ใหม่ แต่ไม่ใช่ในโหมดที่ซ่อนอยู่และฉันต้องการให้มันทำงานในโหมดที่ซ่อนอยู่

ดังนั้นถ้าใครสามารถแนะนำฉันเกี่ยวกับสิ่งที่ฉันทำผิดที่นี่ ???

บันทึกจากคอนโซล:

บันทึกของคอนโซล



@ GrahamMiln ใช่คำถามนั้นถูกถามโดยฉันเกินไปและฉันไม่รู้ว่าทำไม แต่จนถึงตอนนี้คำตอบของคุณไม่มีใครเห็นฉัน ดังนั้นตอนนี้ฉันได้อ่านคำตอบของคุณที่นั่น แต่ปัญหาคือเมื่อฉันใส่ "&" ที่ส่วนท้ายของคำสั่งมันใช้งานได้ถ้าฉันกดปุ่ม run บน automator แต่มันไม่ทำงานเมื่อเพิ่มไฟล์ไปยังโฟลเดอร์ (แม้ว่าสคริปต์จะถูกเรียกผมตรวจสอบโดยแสดง กล่องเตือนก่อนเรียกเบรกมือ) ดังนั้นคำแนะนำใด ๆ ที่ทำให้เกิดเหตุการณ์เช่นนี้ ???
มูฮัมหมัด Tahir

บันทึกคอนโซลไม่สามารถอ่านได้ในภาพนั้น กรุณาคัดลอกและวางข้อความจริงได้ไหม
Tony Williams

ฉันขอโทษ! ฉันพยายามคัดลอกข้อความก่อน แต่ไม่สามารถทำได้นั่นคือสาเหตุที่ฉันเพิ่มภาพหน้าจอ แต่คุณสามารถดูภาพขนาดใหญ่โดยดูภาพในคลิกขวา
มูฮัมหมัด Tahir

คำตอบ:


1

ก่อนอื่นฉันสมมติว่าคุณบังเอิญตัดอักขระ '/' ออกทางด้านหน้าของเส้นทางไปที่ Handbrake ในตัวอย่างของคุณ ประการที่สองเมื่อคุณพูดว่า "โหมดซ่อน" คุณหมายถึงทำงานในพื้นหลัง

จะเกิดอะไรขึ้นถ้าคุณเรียกใช้คำสั่งจากบรรทัดคำสั่ง

คุณจะรู้ได้อย่างไรว่าคำสั่งไม่ทำงานเมื่อคุณเรียกใช้ในโหมดเบื้องหลัง คุณกำลังทำคำสั่ง "ps" จากบรรทัดคำสั่งเพื่อดูว่ามันกำลังทำงานอยู่หรือไม่?

คุณได้ลองเพิ่ม ">> ~ / HB_log.txt 2> & 1" ข้างหน้าคำสั่ง "&" เพื่อให้คุณได้รับบันทึกของทั้งเอาต์พุตและข้อผิดพลาดที่อาจเกิดขึ้นหรือไม่

หากมีการใช้เฉพาะส่วนแรกของชื่อฉันจะสมมติว่าอักขระเครื่องหมายคำพูดรอบชื่อถูกถอด - ลองใช้เครื่องหมาย '\' เพื่อหลีกเลี่ยง กดไลค์ '\ "/ Users / abc / Desktop / TestVidDest / $ (basename $ f) \"' และดูว่าเกิดอะไรขึ้น

ฉันยังสงสัยว่าปัญหาเกี่ยวกับชื่ออาจทำให้ทั้งสายและทำให้เกิดปัญหาของคุณ

ฉันจะเขียนเชลล์สคริปต์ที่คุณสามารถทดสอบภายนอกแล้วเรียกเชลล์สคริปต์ของคุณจาก Automator


ขอบคุณมาก! หลังจากเพิ่ม ">> ~ / HB_log.txt 2> & 1" มันทำงานได้อย่างสมบูรณ์ แต่คุณช่วยอธิบายได้ไหมว่าทำไมเบรกมือจึงไม่ทำงานในพื้นหลังโดยไม่ต้องเพิ่มสิ่งนี้ เพราะเท่าที่ฉันรู้เพียงแค่เพิ่มไฟล์บันทึก ???
มูฮัมหมัด Tahir

และอีกประเด็นหนึ่งชื่อของเอาต์พุตไม่ได้ถูกตั้งค่าอย่างถูกต้อง หากชื่อไฟล์มีสองคำที่ "abc def.mp4" ดังนั้นไฟล์เอาต์พุตจะถูกเก็บเป็น "abc.mp4" คุณช่วยด้วยปัญหานี้ได้ไหม?
มูฮัมหมัด Tahir

บันทึกพูดว่าอะไรเมื่อคุณเรียกใช้
Tony Williams

หากมีการใช้เฉพาะส่วนแรกของชื่อฉันจะสมมติว่าอักขระเครื่องหมายคำพูดรอบชื่อถูกถอด - ลองใช้เครื่องหมาย '\' เพื่อหลีกเลี่ยง กดไลค์ '\ "/ Users / abc / Desktop / TestVidDest / $ (basename $ f) \"' และดูว่าเกิดอะไรขึ้น
Tony Williams
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.