VLC 네트워크(MojaveOS)에서 m3u를 자동으로 로드하는 스크립트 만들기

VLC 네트워크(MojaveOS)에서 m3u를 자동으로 로드하는 스크립트 만들기

그래서 항상 VLC/개방형 네트워크를 열고 IPTV m3u 네트워크 주소를 복사하여 붙여넣어 로드해야 하는 것에 지쳤습니다.

링크를 항상 복사하여 붙여넣을 필요 없이 자동으로 VLC를 열고 내 m3u를 로드하는 스크립트를 만들 수 있도록 도와줄 수 있는 사람이 있습니까?

m3u를 사용하여 간단한 재생 목록을 만들 수 있다는 것을 알고 있지만 문제는 채널이 변경되거나 채널을 추가/제거한다는 것입니다.

따라서 최신 목록을 로드하고 항상 로드하는 자동 스크립트를 사용하면 도움이 될 것입니다.

답변1

GUI 방식

vlc http://link.to/playlist.m3u

또는 순수 터미널

nvlc http://link.to/playlist.m3u

답변2

항상 링크를 복사하여 붙여넣을 필요 없이 어떻게 VLC를 열고 m3u를 로드할 수 있나요?

명령줄 옵션 중 하나를 사용하십시오 [stream]. Windows를 사용하는 경우 추가 명령줄 옵션을 포함하도록 VLC 바로가기를 변경할 수 있습니다.

Usage: vlc [options] [stream] ...
You can specify multiple streams on the commandline.
They will be enqueued in the playlist.
The first item specified will be played first.

...

Stream MRL syntax:

  [[access][/demux]://]URL[#[title][:chapter][-[title][:chapter]]]
  [:option=value ...]

  Many of the global --options can also be used as MRL specific :options.
  Multiple :option=value pairs can be specified.

URL syntax:
  file:///path/file              Plain media file
  http://host[:port]/file        HTTP URL
  ftp://host[:port]/file         FTP URL
  mms://host[:port]/file         MMS URL
  screen://                      Screen capture
  dvd://[device]                 DVD device
  vcd://[device]                 VCD device
  cdda://[device]                Audio CD device
  udp://[[<source address>]@[<bind address>][:<bind port>]]
                                 UDP stream sent by a streaming server
  vlc://pause:<seconds>          Pause the playlist for a certain time
  vlc://quit                     Special item to quit VLC

원천VLC 명령줄 ​​도움말 - VideoLAN Wiki

쉘 스크립트를 사용할 수 있는 경우 다음 스크립트를 사용하여 특정 요구 사항에 맞게 수정할 수 있습니다.

if [[ "$1" == "" ]] ; then
    exit 1
fi

DUMMY=""

# location of playlist
PLAYLIST=/tmp/playlist.m3u

### the playlist is only updated from the Freebox if the playlist file does 
### not exist
###   simply remove the playlist file given by the location $PLAYLIST 
###   to force an update the next time the script is called
if [[ ! -f $PLAYLIST ]] ; then
    RAWPLAYLIST=`mktemp`
    echo "recovering Playlist"
    wget -q http://mafreebox.freebox.fr/freeboxtv/playlist.m3u -O $RAWPLAYLIST
### the following trick is found from:
### http://stackoverflow.com/questions/10207354/how-to-remove-all-of-the-diacritics-from-a-file
### and allows to replace accent characters by non-accent characters
    iconv -f utf8 -t ascii//TRANSLIT $RAWPLAYLIST > $PLAYLIST
    \rm $RAWPLAYLIST
fi

COMMAND="grep -v rtsp $PLAYLIST | grep -v EXTM3U "
for i in $@ ; do
    if [[ $i == "-dummy" ]] ; then
        DUMMY=dummy
    else
        COMMAND=$COMMAND" | grep -i "$i
    fi
done

COMMAND=$COMMAND" | head -1"

FLINE=`mktemp`
eval $COMMAND > $FLINE
LINE=`cat $FLINE`

N=`grep -xn -f $FLINE $PLAYLIST | cut -d : -f 1`

\rm $FLINE

N=$((N + 1))
LINK=`head -n $N $PLAYLIST | tail -1`

if [[ "$LINE" == "" ]] ; then
    echo "No matching channel found"
    exit 1
fi

echo "Opening vlc for: $LINE"
echo $LINK

if [[ "$DUMMY" == "" ]] ; then
    vlc "$LINK" --network-caching=1500 --no-loop
fi

PATH(개인 bin 폴더에 있을 수 있음: ~/bin/PATH 에 있는 경우)에 저장합니다. 예를 들어 FB_VIEW.sh로 실행 가능하게 만듭니다 chmod +x FB_VIEW.sh.

그러면 간단한 사용법은 다음과 같습니다:

FB_VIEW.sh "list of patterns"

이러한 패턴을 포함하는 재생 목록의 첫 번째 채널을 시작합니다(공백으로 구분된 하위 패턴 사이의 순서는 중요하지 않습니다). 패턴 목록에는 "-dummy"라는 단어가 포함될 수 있습니다. 이 경우 발견된 채널과 rtsp 링크만 표시되지만 vlc는 실제로 시작되지 않습니다. 패턴 일치는 대소문자를 구분하지 않습니다. 프로그램된 채널 번호를 패턴으로 사용할 수도 있지만 Freebox에서는 동일한 번호에 대해 다른 플럭스(Adsl, TNT, HD, 표준, 기본 직불)가 있을 수 있으며 HD 또는 같은 두 번째 패턴을 추가해야 할 수도 있습니다. TNT는 올바른 TV 플럭스를 선택합니다.

이 버전에서는 스크립트를 처음 시작하면 Freebox에서 재생 목록을 다운로드하고(wget 사용) 악센트가 있는 문자를 악센트가 없는 문자로 바꾸고 기본 위치인 /tmp/playlist.m3u에 저장합니다(요령을 찾았습니다) 이를 위해 어제). 나중에 재생 목록을 강제로 업데이트하려면 기존 파일을 제거하기만 하면 됩니다. 그러면 다음에 스크립트가 호출될 때 업데이트가 완료됩니다(약 1-2초 소요). 무료는 재생 목록의 특정(일반적으로 적당한) 변경 사항을 정기적으로 적용합니다.

재생 목록의 이름/기본 위치를 쉽게 수정할 수 있으며 "업데이트 부분"(원하지 않는 경우)을 제거할 수도 있습니다. 이 경우 재생 목록을 적절한 위치에 수동으로 제공해야 합니다.

원천m3u 재생목록의 특정 항목을 재생해 보세요!? - VideoLAN 포럼


추가 자료

관련 정보