一个树莓派带了屏幕,也连上了小米的音箱,正好可以变成一个小型视频播放器。那就索性当个小电视用一下,VLC播放器开起来,下面是找的几个CCTV 13新闻频道的直播源。目前2023年12月17日是有效,不保证以后都能用。但是前面两个看域名应该是CCTV官方的,应该可以长期使用。
CCTV-13 新闻:https://live-play.cctvnews.cctv.com/cctv/merge_cctv13.m3u8
CCTV-13 新闻:https://live-play.cctvnews.cctv.com/cctv/merge_cctv13_mud.m3u8
CCTV-13 新闻(声音):https://piccpndali.v.myalicdn.com/audio/cctv13_2.m3u8
2024.3.24更新
上面失效,新的如下
https://live-play-shanghai.cctvnews.cctv.com/cctv/merge_cctv13.m3u8,估计失效也只会是时间问题
VLC播放器里面媒体-打开网络串流-网络-输入网络URL,就可以播放了。虽然现在很少开电视来正经看CCTV了,但是有时候人心情不好的时候,听听CCTV的声音感觉也不错。酒店里半夜驱魔神器CCTV,正能量满满。
另外,如果树莓派的屏幕分辨率较小比如只有800×640 ,全屏播放时,vlc不能对视频进行全屏缩放,看不全的情况,可以尝试选择不同的输出模块,比如 OpenGL 或 X11 视频输出。保存更改后,重新启动 VLC。
如果你刚好也在树莓派的GPIO中安装了一个按钮,那么可以用按钮来控制,直接开启电视。具体代码如下:
import RPi.GPIO as GPIO
import subprocess
import time
import os
os.environ['DISPLAY'] = ':0.0'
os.environ['XDG_RUNTIME_DIR'] = '/run/user/1000' # 请根据您的用户 ID 替换 1000
# 设置 GPIO 模式为 BCM
GPIO.setmode(GPIO.BCM)
# 按钮连接的 GPIO 引脚
button_pin = 27
# 设置该引脚为输入模式,并启用内部上拉电阻
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
vlc_process = None
def button_callback(channel):
global vlc_process
if vlc_process is None:
# 按钮按下,启动 VLC
vlc_process = subprocess.Popen(['cvlc', '--fullscreen', 'https://live-play.cctvnews.cctv.com/cctv/merge_cctv13_mud.m3u8'])
else:
# 再次按下按钮,终止 VLC 进程
vlc_process.terminate()
vlc_process = None
# 添加事件检测到按钮引脚
GPIO.add_event_detect(button_pin, GPIO.FALLING, callback=button_callback, bouncetime=300)
try:
# 保持程序运行
while True:
time.sleep(1)
except KeyboardInterrupt:
# 捕获 Ctrl+C,进行清理
GPIO.cleanup()
# 清理 GPIO 设置
GPIO.cleanup()
如何使用此脚本:
- 将此脚本保存为一个文件,例如
vlc_button_control.py
。 - 运行脚本:
python vlc_button_control.py
。 - 当您按下按钮时,脚本将启动 VLC 并播放指定的视频流。当您再次按下按钮时,它将关闭 VLC。
请注意,这个脚本GPIO.FALLING
用于检测按钮从高电平到低电平的变化,这适用于连接有上拉电阻的按钮。如果你的按钮设置有所不同,可能需要调整此配置。