Tên tập tin không an toàn FFMpeg concat tên tệp không an toàn


14

Tôi đang sử dụng ffmpeg bên trong ứng dụng .net của mình để hợp nhất (nối) một số video ngắn có cùng kích thước mã hóa và chiều rộng và chiều cao. Tôi đã tạo một tệp txt như tài liệu nói và đây là tệp txt của tôi:

concatTextDirectory là thư mục của tệp txt của tôi.

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'

Và đây là phần đối số ffmpeg:

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

nhưng nó không có kết quả và dưới đây là báo cáo

ffmpeg bắt đầu vào 2016-04-25 lúc 19:02:30 Báo cáo được viết thành
"ffmpeg-20160425-190230.log" Dòng lệnh: ffmpeg.exe -f concat -i
"C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt "-c sao chép
" C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4 "-y -report ffmpeg
phiên bản N-79546-g13406b6 Bản quyền (c) 2000-2016 FFmpeg
22.100 libavcodec 57. 35.100 / 57. 35.100 libavformat 57. 34.102 / 57. 34.102 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 54. 0.100 / 54. 0.100 Tách dòng lệnh. Tùy chọn đọc '-f' ... khớp với tùy chọn
'f' (định dạng bắt buộc) với đối số 'concat'. Tùy chọn đọc '-i' ...
khớp với dạng tệp đầu vào với đối số
'C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt'. Tùy chọn đọc '-c' ...
khớp với tùy chọn 'c' (tên codec) với đối số 'sao chép'.
Tùy chọn đọc 'C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4' ... khớp với dạng
tệp đầu ra. Tùy chọn đọc '-y' ... khớp với tùy chọn 'y' (ghi đè các tệp đầu ra) với đối số '1'. Tùy chọn đọc '-report' ...
tách dòng lệnh. Phân tích một nhóm các tùy chọn: toàn cầu.
Áp dụng tùy chọn y (ghi đè tệp đầu ra) với đối số 1. Áp dụng
báo cáo tùy chọn (tạo báo cáo) với đối số 1. Phân
tích thành công một nhóm các tùy chọn. Phân tích một nhóm các tùy chọn: tệp đầu vào
C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt. Áp dụng tùy chọn f (lực lượng
định dạng) với đối số concat. Phân tích thành công một nhóm các tùy chọn. Mở tệp đầu vào: C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt.
[file @ 00000000027d3ee0] Đặt tệp danh sách trắng mặc định ', crypto'
[concat @ 00000000027d3800] Tên tệp không an toàn
'C: \ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4' [AVIOContext @
0000000000957 0 tìm kiếm
C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt: Không được phép thao tác

như bạn có thể thấy ở cuối nó nói:

Tên tệp không an toàn 'C: \ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4'

... và hoạt động không được phép. Tôi đã thử thêm dấu gạch chéo ngược hoặc thay đổi dấu gạch chéo ngược để chuyển tiếp dấu gạch chéo hoặc thoát dấu hai chấm, thêm dấu ngoặc kép hoặc dấu ngoặc đơn ở đầu hoặc cuối của concatTextDirectory ... không có thay đổi nào trong số này thay đổi.

Câu trả lời:


26

Hoặc là chạy

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

Hoặc không sử dụng đường dẫn tuyệt đối (đầy đủ) trong keep.txt


Điều gì không an toàn và tại sao? Ví dụ trong tài liệu cho thấy các đường dẫn tuyệt đối, vì vậy tôi nghĩ đó không phải là vấn đề.
Gustavo

1
ffmpeg.org/pipermail/ffmpeg-devel/2013-F/2/138400.html - khiến các đường dẫn tuyệt đối được coi là không an toàn. Không chắc chắn về logic của nó mặc dù!
jamadagni

Tôi cũng nghĩ rằng nó được cho là đường dẫn tuyệt đối dựa trên tài liệu nhưng dường như điều đó không đúng. Tôi đã làm cho nó chỉ là tên tập tin và nó hoạt động rất tốt.
Michael Tunnell

+1 để sử dụng tên đường dẫn tương đối. Tất cả các ví dụ hiển thị đầy đủ.
pkamb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.