FFMpeg concat demuxer ชื่อไฟล์ที่ไม่ปลอดภัย


14

ฉันกำลังใช้ ffmpeg ภายในแอปพลิเคชัน. net ของฉันเพื่อผสาน (เชื่อมต่อ) วิดีโอสั้น ๆ บางรายการที่มีขนาดและความกว้างและความสูงเท่าการเข้ารหัส ฉันได้สร้างไฟล์ txt ตามเอกสารแล้วและนี่คือ txt ของฉัน:

concatTextDirectory เป็นไดเรกทอรีของไฟล์ txt ของฉัน

file 'C:\Users\mtst\Desktop\Clips\keep\a1.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a2.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a3.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a4.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a5.mp4'

และนี่คือส่วนอาร์กิวเมนต์ ffmpeg:

ffmpeg.StartInfo.Arguments = "/c ffmpeg.exe -f concat -i " + concatTextDirectory + " -c copy " + videoOut + " -y -report";

แต่มันไม่มีผลลัพธ์และด้านล่างคือรายงาน

ffmpeg เริ่มเมื่อ 2016-04-25 เวลา 19:02:30 รายงานเขียนถึง
"ffmpeg-20160425-190230.log" บรรทัดคำสั่ง: ffmpeg.exe -f concat -i
"C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt "-c copy
" C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4 "-y -report ffmpeg
รุ่น N-79546-g13406b6 ลิขสิทธิ์ (c) 2000-2016 the FFmpeg
22.100 libavcodec 57. 35.100 / 57. 35.100 libavformat 57. 34.102 / 57. 34.102 libavdevice 57. 0.101 / 57.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2.100 54.100 / 54.100 แยกบรรทัดคำสั่ง กำลังอ่านตัวเลือก '-f' ... จับคู่เป็นตัวเลือก
'f' (รูปแบบบังคับ) พร้อมอาร์กิวเมนต์ 'concat' ตัวเลือกการอ่าน '-i' ...
จับคู่กับไฟล์อินพุตพร้อมอาร์กิวเมนต์
'C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt' ตัวเลือกการอ่าน '-c' ...
ตรงกับตัวเลือก 'c' (ชื่อตัวแปลงสัญญาณ) ที่มีอาร์กิวเมนต์ 'คัดลอก'
ตัวเลือกการอ่าน'C: \ Users \ mtst \ Desktop \ Clips \ Keep \ keep.mp4' ... จับคู่เป็น
ไฟล์เอาต์พุต ตัวเลือกการอ่าน '-y' ... จับคู่เป็นตัวเลือก 'y' (เขียนทับไฟล์เอาต์พุต) ด้วยอาร์กิวเมนต์ '1' ตัวเลือกการอ่าน '- รายงาน' ... จับคู่เป็นตัวเลือก 'รายงาน' (สร้างรายงาน) พร้อมอาร์กิวเมนต์ '1' เสร็จสิ้น
การแยก commandline การแยกกลุ่มของตัวเลือก: ทั่วโลก
การใช้อ็อพชัน y (เขียนทับไฟล์เอาต์พุต) ด้วยอาร์กิวเมนต์ 1

แยกวิเคราะห์กลุ่มของตัวเลือก แยกกลุ่มของตัวเลือก: ไฟล์อินพุต
C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt การใช้ตัวเลือก f (
รูปแบบบังคับ) ด้วยการเชื่อมโยงอาร์กิวเมนต์ แยกวิเคราะห์กลุ่มของตัวเลือกสำเร็จแล้ว การเปิดไฟล์อินพุต: C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt
[file @ 00000000027d3ee0] การตั้งค่าไฟล์ whitelist เริ่มต้น 'crypto'
[concat @ 00000000027d3800] ชื่อไฟล์ที่ไม่ปลอดภัย
'C: \ Users \ mtst \ Desktop \ คลิป \ Keep \ a1.mp4' [AVIOContext @
0000000000957ca0] สถิติ: 238 ไบต์อ่าน 0 พยายาม
C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt: ไม่อนุญาตให้ใช้งาน

อย่างที่คุณเห็นในตอนท้ายมันบอกว่า:

ชื่อไฟล์ที่ไม่ปลอดภัย 'C: \ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4'

... และการดำเนินงานไม่ได้รับอนุญาต ฉันได้พยายามเพิ่มเครื่องหมายแบ็กสแลชพิเศษหรือเปลี่ยนแบ็กสแลชเพื่อส่งต่อสแลชหรือหนีเครื่องหมายโคลอนคู่เพิ่มเครื่องหมายคำพูดคู่หรือเครื่องหมายคำพูดเดี่ยวที่จุดเริ่มต้นหรือจุดสิ้นสุดของ concatTextDirectory ... ไม่มีการเปลี่ยนแปลงใด ๆ

คำตอบ:


26

ทั้งวิ่ง

ffmpeg.exe -f concat -safe 0 -i
"C:\Users\mtst\Desktop\Clips\keep\keep.txt" -c copy
"C:\Users\mtst\Desktop\Clips\keep\keep.mp4

หรืออย่าใช้เส้นทางที่สมบูรณ์ (แบบเต็ม) ใน keep.txt


อะไรไม่ปลอดภัยและทำไม ตัวอย่างในเอกสารแสดงเส้นทางที่แน่นอนดังนั้นฉันคิดว่านั่นไม่ใช่ปัญหา
Gustavo Rodrigues

1
ffmpeg.org/pipermail/ffmpeg-devel/2013-F กุมภาพันธ์/138400.html - ทำให้เส้นทางที่แน่นอนที่จะถือว่าไม่ปลอดภัย ไม่แน่ใจเกี่ยวกับตรรกะของมันแม้ว่า!
jamadagni

ฉันก็คิดว่ามันควรจะเป็นเส้นทางที่แน่นอนบนพื้นฐานของเอกสาร แต่ดูเหมือนจะไม่ถูกต้อง ฉันสร้างมันเป็นเพียงชื่อไฟล์และใช้งานได้ดี
Michael Tunnell

+1 สำหรับการใช้ชื่อพา ธ สัมพัทธ์ ตัวอย่างทั้งหมดแสดงเต็ม
pkamb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.