ffmpeg concat :“안전하지 않은 파일 이름”
많은 mts 파일을 큰 mp4 파일로 변환하려고합니다.
stephan@rechenmonster:/mnt/backupsystem/archive2/Videos/20151222/PRIVATE/AVCHD/BDMV$ ~/bin/ffmpeg-git-20160817-64bit-static/ffmpeg -v info -f concat -i <(find STREAM -name '*' -printf "file '$PWD/%p'\n") -deinterlace -r 25 -s hd720 -c:v libx264 -crf 23 -acodec copy -strict -2 ~/tmp/Videos/20151222.mp4
ffmpeg version N-81364-gf85842b-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.1 (Debian 5.4.1-1) 20160803
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libwebp --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libopus --enable-libass --enable-gnutls --enable-libvidstab --enable-libsoxr --enable-frei0r --enable-libfribidi --disable-indev=sndio --disable-outdev=sndio --enable-librtmp --enable-libmfx --enable-libzimg --cc=gcc-5
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 53.100 / 57. 53.100
libavformat 57. 46.101 / 57. 46.101
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 51.100 / 6. 51.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
[concat @ 0x56054a0] Unsafe file name '/mnt/backupsystem/archive2/Videos/20151222/PRIVATE/AVCHD/BDMV/STREAM'
/dev/fd/63: Operation not permitted
여기서 무엇이 잘못되었는지 아이디어가 있습니까? 이 문맥에서 "안전하지 않은 파일"이라는 용어는 무엇을 의미합니까?
@Mulvya (감사합니다!)의 답변은 " -safe 0
앞에 추가 -i
"입니다. 그런 다음 find STREAM -name '*' -printf "file '$PWD/%p'\n"
빈 경로를 첫 번째 항목으로 반환하는 또 다른 문제가 나타났습니다 . 이것을 for f in ./*.wav; do echo "file '$PWD/$f'"; done
( https://trac.ffmpeg.org/wiki/Concatenate 참조 ) 변경 했으며 이제 작동하는 것 같습니다. 만세!
이유에서 대답하기 위해 https://ffmpeg.org/ffmpeg-all.html#Options-35 :
이 demuxer는 다음 옵션을 허용합니다.
safe
1로 설정하면 안전하지 않은 파일 경로를 거부합니다. 파일 경로는 프로토콜 사양을 포함하지 않고 상대적이고 모든 구성 요소가 이식 가능한 문자 집합 (문자, 숫자, 마침표, 밑줄 및 하이픈)의 문자 만 포함하고 구성 요소 시작 부분에 마침표가없는 경우 안전한 것으로 간주됩니다.0으로 설정하면 모든 파일 이름이 허용됩니다.
기본값은 1입니다.
-1은 형식이 자동으로 검색된 경우 1이고 그렇지 않은 경우 0입니다.
그것은 밝혀 find .
풋 ./
파일의 앞을. 유닉스 "찾기"에서 선행 "./"을 제거하는 방법을 참조하십시오 . 사용하지 않으려는 경우 솔루션을 위해 -safe 0
.
대답은 완전히 옳습니다. 명령을 보여 주므로 다른 곳에 -safe 0을 두지 마십시오.
ffmpeg.exe -f concat -safe 0 -i "clips.txt" -c copy "video.mp4"
제 경우에는 큰 따옴표로 인해 오류가 발생합니다.
연결할 입력 파일 목록이 포함 된 ffmpeg -f concat -i concat.txt -c copy output.m4a
명령을 사용 concat.txt
합니다.
안전하지 않은 파일 이름 (큰 따옴표) :
file "song1.m4a"
file "song2.m4a"
안전한 파일 이름 (작은 따옴표) :
file 'song1.m4a'
file 'song2.m4a'
안전한 파일 이름 (따옴표 제외) :
file song1.m4a
file song2.m4a
하는 것으로 작은 따옴표 와 따옴표없이이 어떤 공간 ( '/'괜찮습니다), 당신은 여전히 필요가없는 경우에만 작동합니다 -safe 0
파일 이름 / 경로에 공백이 포함되어 있으면.
참고 URL : https://stackoverflow.com/questions/38996925/ffmpeg-concat-unsafe-file-name
'Programing' 카테고리의 다른 글
Jenkins는 github에서 상태 코드 128을 반환했습니다. (0) | 2020.12.02 |
---|---|
ORDER BY 절은 뷰, 인라인 함수, 파생 테이블, 하위 쿼리 및 공통 테이블 식에서 유효하지 않습니다. (0) | 2020.12.02 |
서버 측에 적합한 XMPP Java 라이브러리? (0) | 2020.12.02 |
Android-홈 버튼 클릭을 비활성화 할 수 있습니까? (0) | 2020.12.02 |
VS2012 용 Crystal Reports-VS2013-VS2015-VS2017 (0) | 2020.12.01 |