snap, ffmpeg 사용 시 /tmp 를 지정한다면?

예를 들어, 이런 명령을 내렸다고 한다.

ffmpeg -rtsp_transport tcp -i rtsp://xxx.xxx.xxx.xxx -t 20 -codec:a copy -vn -metadata title="Test" /tmp/abcdeu.m4a

위 명령은, rtsp: 로 시작하는 인터넷 방송을, 20초간 복사한 뒤, /tmp/abcdeu.m4a 라는 파일로 복사하라는 뜻이 된다.

헌데.. 명령이 끝난 뒤 /tmp 에 가보면, 저 파일이 없다.
물론, 데비안/우분투 계열에서 apt 로 ffmpeg 를 설치했을 때는 이렇지 않다.

이 문제는 snap 으로 ffmpeg 를 설치했을 때만 발생한다. 현재 안정판인 4.1.4 는 물론이고, 개발 최신판(Edge)인 4.2.2 에서도 동일한 현상이 나타난다.

음??

여기서, 동일한 명령을 다시 한번 내려보면?

ffmpeg -rtsp_transport tcp -i rtsp://xxx.xxx.xxx.xxx -t 20 -codec:a copy -vn -metadata title="Test" /tmp/abcdeu.m4a

살짝 이상한 오류가 튀어 나온다.

... 전략...
File '/tmp/abcdeu.m4a' already exists. Overwrite ? [y/N]

틀림없이 /tmp 에는 저 파일이 없는데, 파일이 존재한다고 하며, 덮어쓸 지를 물어온다.

이상하여, 검색을 해봤다. (구글이 아니라, 파일 검색.)

sudo find / -iname 'abcdeu.m4a' 
/tmp/snap.ffmpeg/tmp/abcdeu.m4a

앗!!!
저게 뭐야?

/tmp/abcdeu.m4a 라고 지정해줬지만, 그게 snap 하의 ffmpeg 에서는 /tmp/snap.ffmpeg/tmp/abcdeu.m4a 로 인식이 돼 버렸다.
게다가, /tmp/snap.ffmpeg 는 root 소유다. 일개 일반 사용자인 나는 들어갈 수 조차 없다.

이 문제가 생각보다 복잡한 모양이고, 아마도 snap 의 제작 의도, 이른바 철학(?)까지 건드리는 모양이다.
관련된 글을 몇개 찾긴 했는데, 명확한 해법, 또는 우회법등은 보이지 않는다.

꼭 /tmp 를 써야만 할 이유가 없다면, /home 디렉토리를 쓰면 문제는 해결된다.
즉,

ffmpeg -rtsp_transport tcp -i rtsp://new_iradio.ebs.co.kr:554/iradio/iradiolive_m4a -t 20 -codec:a copy -vn -metadata title="Test" ~/abcdeu.m4a

이런 식으로 하면, 사용자 홈디렉토리에 abcdeu.m4a 파일이 생긴다.


이거 알아내느라 또 허비한 시간이..
젠장!!

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.