分類
软件

日常使用的二維碼小工具

在電腦上生成二維碼(QR Code),我使用的是火狐瀏覽器中 rugk 的開發的開源瀏覽器插件 Offline QR Code Generator ,顧名思義,就是無需網絡連接,在本地即可生成二維碼。

安卓手機上生成二維碼,我使用的是 muelli 開發的 Barcodegen。 Barcodegen 可以生成包括二維碼在內的多種格式條碼。後來我發現 Barcode Scanner 的上面的 "Share" 按鈕就可以生成二維碼。

Fedora 下的二維碼識別可以使用 zbar。

sudo dnf install zbar
zbarimg qrcode.jpg
#QR-Code:https://ft.wupo.info/%e6%97%a5%e5%b8%b8%e4%bd%bf%e7%94%a8%e7%9a%84%e4%ba%8c%e7%b6%ad%e7%a2%bc%e5%b0%8f%e5%b7%a5%e5%85%b7/
#scanned 1 barcode symbols from 1 images in 0.01 seconds

安卓手機上掃描二維碼,我使用的是 zxing 開發的 Barcode Scanner 。 這是個老牌條碼掃描器了,現在項目已經進入維護模式,也就不太可能會有更新了,但是用起來是一點問題都沒有的。

本文更新於 2020/08/11。

分類
方法 软件

ffmpeg下載流媒體

Fefora 安裝 ffmpeg

#如果沒有安裝過rpmfusion,需要先安裝之
sudo dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
#然後就可以安裝 ffmpeg 了
sudo dnf -y install ffmpeg

保存m3u8類型的流媒體

#首先把m3u8列表保存為ts視頻
ffmpeg -y \
  -v warning \
  -loglevel debug \
  -i "https://domain.com/path/to/manifest.m3u8" \
  -vcodec copy \
  -c copy -f mpegts out.ts
#然後把ts轉換為mp4
ffmpeg -i out.ts -acodec copy -vcodec copy out.mp4
#或者
ffmpeg -i "https://domain.com/path/to/manifest.m3u8" -codec copy file.mp4
#如果mp4容器遇到問題可以嘗試mkv

保存udp、rtmp、rtsp、http類型的流媒體

ffmpeg -i "rtmp://domain.com/path/to/video.mp4" -vcodec copy -acodec copy out.mp4

合併視頻和音頻文件

ffmpeg -i video.mp4 -i audio.m4a -c copy output.mkv

選擇m3u8的清晰度

#m3u8文件可以用文本編輯器打開,內容如:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=276000,RESOLUTION=256x144,CODECS="avc1.66.30, mp4a.40.2",CLOSED-CAPTIONS=NONE
https://vod1-vh.akamaihd.net/i/mp4_hk/tv/2020/GLOBCT2020L03100007.smil/index_250000_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=465000,RESOLUTION=432x240,CODECS="avc1.66.30, mp4a.40.2",CLOSED-CAPTIONS=NONE
https://vod1-vh.akamaihd.net/i/mp4_hk/tv/2020/GLOBCT2020L03100007.smil/index_400000_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=797000,RESOLUTION=640x360,CODECS="avc1.66.30, mp4a.40.2",CLOSED-CAPTIONS=NONE
https://vod1-vh.akamaihd.net/i/mp4_hk/tv/2020/GLOBCT2020L03100007.smil/index_700000_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1232000,RESOLUTION=848x480,CODECS="avc1.66.30, mp4a.40.2",CLOSED-CAPTIONS=NONE
https://vod1-vh.akamaihd.net/i/mp4_hk/tv/2020/GLOBCT2020L03100007.smil/index_1000000_av.m3u8?null=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2478000,RESOLUTION=1280x720,CODECS="avc1.66.30, mp4a.40.2",CLOSED-CAPTIONS=NONE
https://vod1-vh.akamaihd.net/i/mp4_hk/tv/2020/GLOBCT2020L03100007.smil/index_2000000_av.m3u8?null=0

#表示這個文件提供了 5 個清晰度的視頻,通常不制定的話回選擇最好的清晰度
#如果我們要指定 480P 的清晰度,也就是第4個
#(從第 0 個開始數)
#那麼完整的命令就是

ffmpeg -i "https://vod1-vh.akamaihd.net/i/mp4_hk/tv/2020/GLOBCT2020L03100007.smil/master.m3u8" -map p:3 -codec copy 31.mp4

使用 curl-impersonate 繞過瀏覽器驗證

低端影視這樣的網站會檢查客戶端是否是瀏覽器,此時只要使用 curl-impersonate 就可以下載了。

使用時在瀏覽器開發者工具裏找到資源的鏈接,右鍵 > Copy Value > Copy as cURL。然後在命令行裏把 curl 替換成 curl_ff109,並加上 -o MOVIE.mp4 就可以下載了。如:

./curl_ff109 'https://v.ddys.pro/v/movie/Return.to.Dust.mp4' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5' -H 'Accept-Language: en-US,en;q=0.5' -H 'Referer: https://ddys.pro/' -H 'Range: bytes=0-' -H 'Origin: https://ddys.pro' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: video' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: same-site' -H 'Accept-Encoding: identity' -o 隱入煙塵.mp4

如果中斷了可以加上 -C 斷點續傳。

使用 ffmpeg 將 mp4 轉化為較舊的編碼格式

我在使用手機自帶的相冊軟件投屏到電視上時,有時會遇到只能投遞一幀的情況,這可能是手機端或電視端不支持較新的視頻或音頻格式,可以使用 ffmpeg 將其轉碼為較舊格式。

ffmpeg -i input.mp4 -c:v libx264 -c:a libmp3lame -b:a 192k output.mp4
#-i input.mp4: Specifies the input file.
#-c:v libx264: Sets the video codec to H.264 (libx264).
#-c:a libmp3lame: Sets the audio codec to MP3 (libmp3lame).
#-b:a 192k: Sets the audio bitrate to 192 kbps (you can adjust this value as needed).
#output.mp4: Specifies the name of the output file.

本文更新於 2024/10/26。

分類
软件

Tiny Tiny RSS

Firefox 今天更新到了 68.2.0,一個比較大的改動是移除了自帶的 RSS 閱讀器。剛好前不久拿到一台免費的 Oracle Cloud,於是搭建 Tiny Tiny RSS 來做閱讀聚合。

MariaDB、php7.2、nginx 和 letsEncrypt 證書生成器的安裝網上資料很多,這裡就不貼了。

然后根据 Tiny Tiny RSS Installation Guide 一步一步来做。我是直接在nginx默認的html文件夾下 git clone 出項目,然後訪問 http://yoursite/tt-rss/install/ 來安裝,下面是遇到的問題。

未安裝 php-intl

sudo yum install php7.2-intl

文件權限不足

#首先修改文件夾權限
cd /usr/share/nginx/html/tt-rss
sudo chown -R nginx:nginx cache lock feed-icons
sudo chmod -R g+w cache lock feed-icons
#如果你的 CentOS 7 系統和我的一樣開啟了 SELinux,還需要
sudo chcon -R unconfined_u:object_r:httpd_sys_rw_content_t:s0 cache feed-icons lock

更新機制

#首先嘗試了 systemctl,沒有成功
#於是用原始的crontab
*/30 * * * * /usr/bin/php72 /usr/share/nginx/html/tt-rss/update.php --feeds --quiet

使用小撇步

  • 在偏好設定》摘要》類別里,可以新建類別。
  • 在 RSS 訂閱上右鍵,編輯摘要里可以單獨設置更新頻率。據說選項里勾上媒體快取可以緩存媒體到服務器(未驗證)。
  • 打開「全部文章」,點擊閱讀頁左上角的RSS標誌,就可以用 RSS 的方式分享自己所有的閱讀聚合。
  • 安卓版客戶端可以從 F-droid 下載,我沒有使用客戶端我使用的是 Readrops。

If it helps, please kindly consider to contribute or donate.






191218更新:Oracle Cloud 的服務器被無預警註銷,沒有通知沒有郵件什麼都沒有。但是啟動盤還在,所以可以再創建一個實例。雖然如此,仍然給人極不靠譜的感覺。新實例會產生新 IP,修改 DNS 後原來的服務就又可以用了。

藉此機會順便升級了下 Tiny Tiny RSS,由於我是通過 Git安裝的,所以需要在安裝文件夾執行下面命令就可以了。

git pull origin master
#如果你不小心改動過項目文件,可以用下面命令忽略之
git reset --hard HEAD 

更新後進入網頁可能會提示需要更新數據庫,點擊更新按鈕後就完成了升級。

本文更新於 2020/10/16。

分類
软件

火狐啟用未簽名的附加元件

昨天還好好的,也沒升級火狐,今天一打開大片插件都被禁用了,理由是沒有簽名,所以不夠安全。但是忽然用不了很不方便啊,臨時的解決辦法是:瀏覽器輸入about:config,搜索欄輸入xpinstall.signatures.required,將其值改為false,即可啟用。

忽然禁用,而且沒有提示怎麼開啟,很多用戶都會很困擾吧。如果尊重用戶的話,希望可以告知用戶,在用戶願意為自己安全負責的情況下如何開啟被禁用的插件。幾百萬人使用的插件,說禁用就禁用了,傷害面不會有點大嗎?


升級到60.6.2esr後問題得以修復。

本文更新於 2019/05/06。

分類
软件

衛星圖

衛星圖可以帶來比繪製地圖更真實的體驗。網頁版谷歌地圖提供的衛星圖已經很方便,專業版還可以看過往的衛星圖,在時間跨度上看地貌是非常震撼的,比如深圳的南山半島(建造)和岩手的鵜住居(破壞)。

Google地球專業版可以直接從官方網站下載。為Linux用戶提供64位元的適用於 Debian/Ubuntu的deb包,和適用於 Fedora/openSUSE的rpm包。安裝後應該會出現在程序菜單網絡子菜單下。

#通過代理打開Google地球專業版
proxychains4 google-earth-pro
##如果有更新可能會報未導入Google公鑰的錯誤,通過下面命令導入即可
sudo rpm --import https://dl.google.com/linux/linux_signing_key.pub
#導入公鑰後可再嘗試
sudo dnf update google-earth-pro-stable

除了谷歌地圖,OpenStreetMap的編輯器亦提供Bing 空照圖、DigitalGlobe Premium 空照圖、DigitalGlobe Standard 空照圖、Esri 世界衛星圖、Esri 世界衛星圖(清晰版)Beta、Mapbox 衛星圖這六種衛星圖,根據地區不同,有的非常清晰有的則很模糊。

分類
Linux 软件

Linux上的離線字典——GoldenDict

GoldenDict是一款方便的字典應用,不僅支持離線字典和屏幕取詞,也支持在線辭典服務。Fedora直接從軟件倉庫安裝 goldendict 即可sudo dnf install goldendict,默認的屏幕取詞快捷鍵是Ctrl+C+C。

分享幾個字典的下載地址:https://1drv.ms/f/s!AiSujQyFSc-uab_ItF61BBKnLUs。GoldenDict中的字典順序也是下面順序。

  1. Babylon_English_Chinese_S_.BGL
  2. Babylon_Chinese_S_English.BGL
  3. Oxford_Advanced_Learner_English-Chinese_Dictionary-4th.bgl
  4. ConciseOxfordEnglishDictionary.dsl.dz
  5. Oxford English Dictionary (2nd Edition) .bgl
  6. 现代汉英词典(金山).dsl.dz

安卓也有GoldenDict可用,我用的免費版(谷歌市場:GoldenDict Free),有最大5個字典的限制,但是也夠用了。

使用 espeak 來發音

#安裝espeak
sudo dnf install espeak
#打開GoldenDict,菜單欄依次選擇
#編輯/字典/字典來源/程式/新增
#新增內容為:
#類型:音訊
#名稱:espeak
#命令列:/usr/bin/espeak -v en -s 120 %GDWORD%
#圖示:/usr/share/doc/espeak/html/images/lips.png
#最後勾選啟用框,保存並重啟GoldenDict就可以有英文發音了

##如果要聽法語發音,
##只需要把命令列中的 en 換成 fr 即可。

更多字典可以從這些地方獲得:http://download.huzheng.org/(來自:Good offline dictionaries for GoldenDict)

使用 Speech Dispatcher 來發音

來到 2023 年,Speech Dispatcher 是新的語音生成器。這裏記錄下在 Fedora 上安裝以及命令調用的方法:

#安裝
sudo dnf install speech-dispatcher speech-dispatcher-utils
#使用
spd-say hello

本文更新於 2023/08/12。

分類
软件

youtube-dl

Edit 221015: 如果遇到一些 youtube-dl 不支持的網址,可以嘗試用 yt-dlp,來下載,比如 arte.tv 的視頻。可以用傳統的 pip 安裝:pip install yt-dlp也可以直接允許可執行文件。使用方法類似 youtube-dl。

之前用過一些在線提取和轉換YouTube視頻的服務,近來發現這些提取或轉換的鏈接要求ip一致,那就無法用洋蔥網絡下載了。好在發現youtube-dl這麼個好工具,不僅能下載單集視頻還能下載視頻列表;不僅能單獨下載字幕還能把字幕合入視頻,非常強大。目前用的這幾個參數,記錄一下。

#安裝youtube-dl
sudo dnf install youtube-dl
##單個視頻下載
#查看可下載的視頻,注意audio only的視頻,沒有伴音的哦
youtube-dl https://www.youtube.com/watch?v=qU52CFGTGu0 -F
#下載編號為22的視頻
youtube-dl --proxy socks5://127.0.0.1:9150 qU52CFGTGu0 -f 22
#續傳中斷的視頻
youtube-dl --proxy socks5://127.0.0.1:9150 qU52CFGTGu0 -f 22 --continue
#列出所有字幕
youtube-dl --proxy socks5://127.0.0.1:9150 qU52CFGTGu0 --list-subs
#只下載字幕而不下載視頻
youtube-dl --all-subs --skip-download --proxy socks5://127.0.0.1:9150 https://www.youtube.com/watch?v=qU52CFGTGu0
#使用aria2搭配proxychains實現多進程下載
sudo dnf install aria2 proxychains-ng
proxychains4 youtube-dl -f mp4 --external-downloader aria2c --external-downloader-args '-c -j4 -x 4 -s 4 -k 5M' lW0ugxbtIEE
##視頻列表下載
#將視頻列表中的視頻連接輸出到文本文件
youtube-dl -j --flat-playlist "https://www.youtube.com/playlist?list=PLATwx1z00HsdanKZcTMQEc-n_Bhu_aZ76" | jq -r '.id' | sed 's_^_https://youtu.be/_' > list.log
#從文件里讀取視頻地址並下載,下載過的會保存於done.txt不會重複下載
youtube-dl -f mp4 --external-downloader aria2c --external-downloader-args '-c -j5 -x 5 -s 5 -k 10M --max-download-limit 1024k' --batch-file list.log --download-archive done.txt

#下載分辨率是 1080 的最佳畫質音視頻
yt-dlp --format "bv*[height=1080]+ba/b" qU52CFGTGu0
#舊電視或機頂盒可能不支持 VP90 視頻編碼以及 opus 音頻編碼
#或者不識別默認的 webm 視頻文件,這時可以選擇較舊的 avc1(h264) 視頻編碼和 mp4a 音頻編碼來解決
yt-dlp qU52CFGTGu0 -F
yt-dlp qU52CFGTGu0 -f 137+140

參考:youtube-dl批量下载时,跳过之前已经下载过的文件

Using yt-dlp in command line網頁存檔

本文更新於 2024/09/20。