FFMpeg concat demuxer 안전하지 않은 파일 이름


14

.net 응용 프로그램 내에서 ffmpeg를 사용하여 동일한 인코딩 및 너비 및 높이 크기로 짧은 비디오를 병합 (연결)합니다. 설명서에 나와있는 것처럼 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 Copyright (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. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 명령 줄 나누기. 읽기 옵션 '-f'... 옵션과 일치
'concat'인수가있는 'f'(force 형식) 읽기 옵션 '-i'... 'C : \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt'인수가있는
입력 파일과 일치합니다
. 읽기 옵션 '-c'...
인수 'copy'를 가진 옵션 'c'(코덱 이름)와 일치합니다. 읽기
옵션 'C : \ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4'...
출력 파일 과 일치 합니다. 읽기 옵션 '-y'... 인수 '1'의 옵션 'y'(출력 파일 덮어 쓰기)와 일치합니다. 옵션 '-report'읽기 중 ... 인수 '1'의 옵션 'report'(보고서 생성)와 일치합니다.
명령 행 분할 완료 옵션 그룹 구문 분석 : global.
인수 1로 옵션 y (출력 파일 겹쳐 쓰기) 적용

옵션 그룹을 파싱했습니다. 옵션 그룹 구문 분석 : 입력 파일
C : \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt.
인수 concat과 함께 옵션 f (강제 형식) 적용 옵션 그룹을 구문 분석했습니다. 입력 파일 열기 : C : \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt
[file @ 00000000027d3ee0] 기본 화이트리스트 'file, crypto'설정
[concat @ 00000000027d3800] 안전하지 않은 파일 이름
'C : \ Users \ mtst \ Desktop \ Clips \ 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-February/138400.html – 절대 경로가 안전하지 않은 것으로 취급됩니다. 그래도 그 논리에 대해 확실하지 않습니다!
jamadagni

또한 문서를 기반으로 한 절대 경로라고 생각했지만 분명히 옳지 않습니다. 나는 단지 파일 이름으로 만들었고 훌륭하게 작동했습니다.
Michael Tunnell

상대 경로 이름을 사용하는 경우 +1 모든 예제는 전체를 보여줍니다.
pkamb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.