본문 바로가기
Streamlit

Streamlit - 이미지, 비디오, 오디오 웹 화면에 띄우기

by 하니__ 2024. 4. 23.

 
 
 

이미지 처리를 위한 라이브러리
from PIL import Image

 
이때 PIL = Python Image Library 라는 뜻이다
 
 
 

1. 저장되어있는 이미지파일 화면에 표시하는 방법

 
Streamlit 라이브러리의 image( ) 를 사용하며
 
파라미터 안에 Image.open(  )  을 넣어 파일경로를 넣어주고 화면에 띄우게 된다
 
이때 화면크기 조절이 가능하다

    img = Image.open('./data/image_03.jpg')
   
    st.image(img)
    st.image(img, width = 500)
    st.image(img, use_column_width = True)

 
 
 
 
 

2. 인터넷에 있는 이미지 화면에 표시하는 방법

 
 
인터넷상의 이미지에는 URL주소가 있다
위와 같이 주소부분을 URL주소로 넣어주면 되겠다
이때 그냥 넣어주어도 되고
변수를 만들어 넣어주어도 나오는건 동일하다

   st.image('https://i.namu.wiki/i/JBHVazuS08hDQOZSQjSTa-_Wyk0O4pSE3IGNcBBj79TgYC1dQSfl39dnfn8bYdqxQqiP6XHj07RhzTWhIw6D1g.webp')
   
   url = 'https://i.namu.wiki/i/JBHVazuS08hDQOZSQjSTa-_Wyk0O4pSE3IGNcBBj79TgYC1dQSfl39dnfn8bYdqxQqiP6XHj07RhzTWhIw6D1g.webp'
   st.image(url)

 
 
 

 
 
 
 
 

 3. 비디오 동영상

 
 

3 - 1. 파일이 있는 영상을 올리는 법

위의 이미지 오픈에서 이미지는 떼고
open(  )만을 이용하여 주소부분을 붙이고
이번엔 .video(  ) 를 사용하여 올릴 수 있다

    video_file = open('./data/video1.mp4', 'rb')
    st.video(video_file)

 

 

3 - 2. 인터넷의 영상을 올리는 법

 

video_url = "https://www.example.com/video.mp4"
st.video(video_url)

형식으로 위의 이미지 처럼 동영상의 주소를 넣으면 보통 나오지만

 
이렇게 재생이 되지 않는 경우도 있는데
특정 사이트나 서비스에서 호스팅되는 동영상 URL이 문제가 되는 경우도 있고
동영상 파일의 포맷 및 인코딩이 스트림릿에서 지원이 안되는 경우도 있고
때로는 네트워크 환경이나 방화벽 설정이 동영상 재생에 영향을 줄 수도 있다
 
너무 낙심 하지 말고 차라리 저장해서 올리는 방법이나
같은 영상을 다른 주소로도 찾아서 시도해 보자
 
 

3 - 3. 유튜브 영상을 올리는 법

 

유튜브에 공유 버튼을 누르면 주소가 나온다 그것을 
위와 다른건 같고 주소 부분만 링크를 넣도록 하자

    youtube_url = "https://youtu.be/tNYDJz6wdQ8?si=dTwIPGqqB39oV-bz"
    st.video(youtube_url)

 

잘 올라가는것이 보인다
 
 
 
 
 
 

4. 오디오 음성파일
    audio_file = open('./data/song.mp3','rb')
    st.audio(audio_file.read(), format='audio/mp3')

 
위와같이 st.audio( )를 사용 하면 되겠다
 
st.audio() 함수는 파일의 내용을 읽고 파일 형식을 자동으로 감지할 수 있어
.read( ), format = 'audio/mp3'는 입력하지않아도 재생이 되지만
 
.read()를 사용하여 파일을 읽는 경우
파일을 미리 읽어들이는 것이므로 큰 파일을 처리할 때 도움이 되며
format= 또한
파일 형식이 명확하지 않을 때 명시적으로 파일 형식을 지정하는 것이 도움이 되기때문에
 
적지않는것보단 도움이 된다

4 - 2. 인터넷 오디오 음성파일 올리는 법
audio_url = "https://www.example.com/audio.mp3"
st.audio(audio_url)

 
 
오디오 파일도 위의 이미지 파일이나 동영상 파일과 마찬가지로
인터넷에서 URL을 통해 읽어올 수 있다
 
 
하지만 동영상때와 마찬가지로
코덱이 지원되지 않아 재생이 안되는 경우
인터넷 연결이 원활하지 않을 경우
스트림릿의 버그나 이슈
등의 이유로 재생이 안 될 수도 있으니
 
그럴땐 동영상때처럼 다른 주소를 찾거나 저장을 하여 올려보도록 하자