Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

Plasma, Dolphin, VLC, Samba 조합에서 발생하는 간헐적인 동영상 재생 오류와 해결 방법

Arcane Weekly에 오신 것을 환영합니다! 오늘은 제를 괴롭히는 Linux 문제들을 다루는 코너에서, 다소 흥미로운 사용 사례 하나를 소개하려 합니다. Plasma 데스크톱 환경을 사용하면서 Dolphin 파일 관리자로 Samba를 통해 Windows 공유 폴더에 접속한다고 가정해 봅시다. 그리고 해당 Samba 공유에 저장된 동영상 파일을 VLC로 열어 재생하려고 하는데, 어느 날은 잘 되고 어느 날은 되지 않습니다.

저는 최근 몇 달간 이 문제를 겪었습니다. 특정 Plasma 버전에만 국한된 문제로 보이지는 않지만, 주로 최신 버전인 Plasma 5.17과 Plasma 5.18에서 주로 목격했습니다. 특히 로컬 캐싱 처리가 상당히 개선되었음에도 불구하고, 간헐적인 재생 오류는 여전히 남아 있습니다. 파일을 재생하려고 하면 아무런 반응이 없는데, 이상하게도 다른 경우에는 멀쩡하게 작동합니다. 이제 디버깅을 시작해 보겠습니다.

문제 자세히 살펴보기

VLC는 단순히 파일을 재생하지 않을 뿐, 내부적으로 무엇이 잘못되었는지 알려주는 단서가 거의 없기 때문에 더 많은 정보가 필요합니다. 가장 확실한 방법은 미디어 플레이어를 명령줄에서 실행한 후 오류 메시지를 확인하는 것입니다. 그렇게 해보면 다음과 같은 메시지를 만나게 됩니다.

smb stream error: read failed (Software caused connection abort)

메시지 자체는 큰 힌트를 주지 않습니다. 인터넷에도 이 주제에 대한 글이 많지만, 대부분의 원인 분석과 해결책은 결정적이지 않아 보입니다. 다만 데이터 읽기 과정에 문제가 있다는 점은 짚어줍니다. 아마 Dolphin이 Samba 공유에서 데이터 청크를 가져오려다가 어떤 이유로 실패하는 것으로 추측됩니다. 이 실마리를 잡고 탐색을 이어가 보겠습니다.

해결 방법

오랜 조사 끝에 이 문제를 정확히 짚어주는 VLC 버그 리포트를 찾을 수 있었습니다. 문제는 비교적 최신 빌드, 정확히는 VLC 3.0.8 이상 버전에서 발생하는 것으로 보입니다. 이는 Plasma에 도입된 수많은 변경 사항과 맞물려 문제를 한층 복잡하게 만듭니다. 흥미로운 점은 이 문제가 VLC 고유의 문제이면서 동시에 Plasma에서만 발생한다는 사실입니다. 같은 VLC 빌드가 원격 연결에 KIO 대신 GVFS를 사용하는 Xfce나 Gnome 데스크톱에서는 아무런 문제 없이 작동하기 때문입니다.

VLC 3.0.8에서 프리페치(prefetch) 읽기 값이 변경되었는데, 바로 이 값이 Plasma에서 이상한 동작을 유발하는 것으로 보입니다. VLC 환경설정에서 해당 값을 확인하고 조정할 수 있습니다. 모든 설정 표시 > 스트림 필터 > prefetch 순서로 이동하면 됩니다. 기본 설정을 보면 버퍼 크기(Buffer size)는 16KB로 지정되어 있는 반면, 읽기 크기(Read size)는 16MB로 되어 있습니다. 이 읽기 값을 버퍼 값과 동일하게 변경한 후 VLC를 재시작하면, 프로그램이 정상적으로 작동하며 Samba 공유의 파일을 연결 중단(connection abort) 오류 없이 재생할 수 있습니다.

Plasma, Dolphin, VLC, Samba 조합에서 발생하는 간헐적인 동영상 재생 오류와 해결 방법

마무리

실제로 이 문제의 원인을 찾아내신 분께 진심으로 감사드립니다. 'Harvester'라는 닉네임이 꽤 적절합니다. 직접 깊이 파헤쳐서 해결책을 찾아냈으니까요, 하하. 정리하자면 여기에는 두 가지 요소가 얽혀 있습니다. VLC 버전이 한몫하지만, 문제는 오직 Plasma에서만 발생하며 그중에서도 최신 버전에서 나타납니다. 다만 두 프로젝트의 개발이 병행되어 왔다는 점을 감안하면, 구버전 Plasma에서는 이 현상을 경험하지 못했을 이유를 충분히 설명할 수 있습니다. 즉, 이 문제를 만나려면 세 가지 조건이 모두 충족되어야 합니다. 이렇게 얽힌 복합 문제는 디버깅이 결코 쉽지 않습니다.

Plasma의 원격 공유 연결 스택이 조속히 완전히 개선되기를 바랍니다. 현재는 다른 데스크톱 환경에 비해 뒤처져 있어서, 사용자가 미디어 플레이어가 어떤 버퍼/읽기 값을 설정하는지까지 신경 써야 하기 때문입니다. 다른 환경은 훨씬 투명하게 작동하며, 본래 그래야 마땅합니다. 버그 트래커는 유용하지만 이를 접하는 사람이 많지 않을 것이 걱정되고, 근본적인 원인 또한 여전히 남아 있습니다. 그래도 이 글이 여러분의 문제 해결에 도움이 되기를 바라며, 여기서 마무리하겠습니다.

즐거운 리눅싱 되세요!