【視聴・録画】Linuxでテレビ総合16 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
まず日本語を勉強しよう。ソフトウェアをどうこう言うのはそれからだ。 >>850
割りと最近でもやってるでしょ
AMDは、オプソドライバーにめっちゃ協力的に豹変しちゃって
Nvidiaのオプソドライバーもあるにはあるけど
ダメな子扱いされてますよ
まぁIntelは昔から優等生みたいですけど お久しぶりです。
色々あって、MythTVの最新版へのISDB(J)対応まで手が廻らない状況が続いていますが、
根本的に色々変えないと無理だ。と言う結論にはなってます。
で、今回書いたのは、DVBデバイスからチューナーカード使ってる(FUSE B25経由で?)方で、カーネル6.3.7以降を使った場合(Debian sidだと6.3.0-1-なんたらがあたる)、ちゃんと使えるかどうかレスをお願いしたいと思いまして(´・ω・`)
どうやら、DVB Frontendをopenするときに、カーネルの内部でデッドロック起こしてるのまではわかったので、起きる条件を確定して、カーネル上流にバグレポート出すかFUSE B25を改良するかしたいので…
どうか、ご協力よろしくお願いします(´・ω・`) ちょうどその修正がv6.3.7から取り入れられてるんだよね...
"media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()皮肉にもblocking operation"
fuse_b25の中で、
本来blocking operationをすべきでない場面でblocking operationをしてるとかなのかなのかな...
今まではWARN_ON()で済んでた(?)のが、
上の修正によってむしろデッドロックするようになったとか... ちょっと実験してみたけど、デッドロックにはならなかったよ
使ってたソースがどれなのかわからないけど
github.com/artanejp/fuse_b25_unofficialのデフォルトブランチで
kernel 6.3.8-arch1-1
マウントしてmpvで再生しようとすると、エラーで終わるだけだった。
ログは dvr0がオープンできずに終了
> b25_open() in file b25.c, line 190: /demux0 open flags:0x8800
> filter_loop() in file secfilter.c, line 261: filter_loop started.
> b25_open() in file b25.c, line 190: /demux0 open flags:0x8802
> release_secfilter() in file secfilter.c, line 419: releasing demux device
> filter_loop() in file secfilter.c, line 261: filter_loop started.
> b25_open() in file b25.c, line 190: /dvr0 open flags:0x8800
> b25_open() in file b25.c, line 190: /dvr0 open flags:0x8800
> b25_open() in file b25.c, line 197: failed to open /dvr0 device: Device or resource busy
dvb-fe-tool -a 9 -m とかだと今度は 'WARNING device dvb9.frontend0 not found'で、ログは特になし
自分はずっとfuse_b25は使ってこなかったので、あってるかどうかわからんけど.... 大体わかりました(´・ω・`)
# 新しいWEB UIは使いにくい…
幾つかの複合的な理由でデッドロックにハマってるようです。
1.fuse_b25は/dev/dvb/adapterX/frontend0 を、/dev/dvb/adapter(X+8)/frontend0 へとSYMLINKしてる
なぜなら、fuse_b25は/dev/dvb/adapterx/demux0 と/dev/dvb/adapterx/dvr0 を監視して得られたストリームを解釈して、ARIB B25手順で複合すればいいから。
2.Linux 6.3.7以降では、open()とclose()だけではなく、stop()(メインスレッド終了)などでも、remove_mutexでロックを書けてる。これは、スレッドごとのリソース解放に関わるので当たり前といえば当たり前。
3.MythTV 31系列では、DVB のアダプターごとにスレッドを作ってopen()して状態をチェックする。
4.初動で、adapterX と adapter(X+8) (例えば、adapter1とadapter9)が同時にopen()されてしまう(具体的な場所を特定し終えてない)。
∴カーネルの中でデッドロックします\(^o^)/
これ、なんというか、MythTV側で対策しないとまずい感じですね(´・ω・`)
案1: adapterX (0≦X≦7 ?)は見ないように細工する事で、多重アクセスをさせなくする(かなり姑息なのでやりたくはない)
案2: adapterとして監視する範囲(Xですな)を任意に設定できるようにする→多少は姑息じゃない
案3: どうせだから、ストリームの復号部分をlibaribb25などを使ってMythTVに組み込んじゃう
→これがベスト。どちらにせよ、MythTV33以降に移行しないといけないのが確実なので
ただ、案3はかなり面倒くさいというかどちらにしてもやるとはいえ時間がかかるので、まぁ、案1か案2を仮に突っ込んでlibaribb25使うようにするまで時間稼ぎするしかないかなぁと思ってます(´・ω・`) >>854
>>855
ありがとうございます!!
書かれたことを手がかりに、どうにか原因を掴めました(´・ω・`) MythTVに関して。応急の対策が出来ました。
最終的に、色々外してました(;´Д`)
https://github.com/Artanejp/mythtv/commit/b059b2e9de8f9f14a975d5dbf6a1bc37d5e37332
原因は、
Linux 6.3.7以降のDVBドライバーで、フロントエンドについてopen() close() *など*する時に、mutexで排他をするのはいいのですが、
しかし、一度open()したら内部スレッド立ち上げてclose()でスレッドを止めるのもまぁいいのです(というかあたりまえ)が、
スレッドを落とした後、どうやら最大3秒はmutexにスレッドが落ちてると通知がされない…(;´Д`)
で、ここからが本体?なのですが、CardUtil::ProbeDVBFrontendName()を、MythTVは極めて頻繁に呼びやがるのです(´・ω・`)
# Commit Messageでは関数名を間違えてますが、↑が正しい(´・ω・`)
すると!close()側のmutexがcleanupされるまえに、open()されちゃって、
ド ラ イ バ ー の 中 で 刺 さ り ま す
(ノಠ益ಠ)ノ彡┻━┻
しょうがないから、/dev/dvb/adapterX/frontendY をclose() した後、*5秒* sleep()する応急対策しました(;´Д`)
カーネルのDVB周りのメンテナーに連絡取るのクソ面倒くさいのであんましやりたくないですけど、もう、しょうがないからバグレポートを(ひょっとしたらDebianb BTS経由かもですが)します(;´Д`) dvb-core/dvb_frontend.c::dvb_frontend_stop() の中でkthread_stop(fepriv->thread)を呼ぶ前に、
dvb_frontend_wakeup(fe)を追加すればいいだけのような気もするね...
frontendをopen -> close -> open -> close するだけのかんたんなテストプログラムを書いて、
3秒くらい時間がかかること(とMythTVなどアプリでは頻繁にopen/closeしてること)をメンテナに知らせればいいのかもしれない..
自分もいまちょっとドライバの変更を試す時間が取れなそうなので、申し訳ないですけど... >>860
まさにその方向でやろうとは思ってて(と言うかまぁ、それで、所々にWAIT噛まして結果が違うでしょ?って示すのが一番説得力あると思うので)、
そこら辺と、アレやコレやの「お作法」が沢山ある領域なんで、そこら辺がクソ面倒くさいけど、できるだけ早くやるつもりでおります(´・ω・`) こっち(6.3.8-arch1-1)だと、
frontendデバイスを time <open(); close(); open(); close();するプログラム> でも、毎回非常に短い時間で帰ってくるね
どういうアクセスのときに3秒またされるんだろ? バグレポートをまとめるためのテストコードを書き始めたところで、6.3.9がリリースしてたので試しました。
なんと!直されてました!!!!
ありがとうございます。別件名目での修正ではあったようですが。
ちなみに変更点は:
commit 7cfab4c9dc09ca3a9d57c187894055a22bdcda78
Author: Mauro Carvalho Chehab <mchehab@kernel.org>
Date: Fri Jun 9 09:16:21 2023 +0100
Revert "media: dvb-core: Fix use-after-free on race condition at dvb_frontend"
[ Upstream commit ec21a38df77a5aefbd2f70c48127003b6f259cf3 ]
As reported by Thomas Voegtle <tv@lio96.de>, sometimes a DVB card does
not initialize properly booting Linux 6.4-rc4. This is not always, maybe
in 3 out of 4 attempts.
After double-checking, the root cause seems to be related to the
UAF fix, which is causing a race issue:
(中略。似たような現象)
This reverts commit 6769a0b7ee0c3b31e1b22c3fadff2bfb642de23f.
Fixes: 6769a0b7ee0c ("media: dvb-core: Fix use-after-free on race condition at dvb_frontend")
Link: https://lore.kernel.org/all/da5382ad-09d6-20ac-0d53-611594b30861@lio96.de/
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org> https://lore.kernel.org/all/20230605184323.79a7609e@sal.lan/
によると、 frontendの”登録”時に(fepriv->sem と 新規導入のfe->remove_mutexで)デッドロックする(ことがある)みたいなので、
open()/close()時では無いけれど、似たような現象だね
ただもともとこのコミットの動機が、Use-after-Freeのセキュリティバグとして上がっていることなので
https://www.spinics.net/lists/linux-media/msg234333.html
revertしたままにはならならいだろうね... ずぶの素人ですがアドバイスお願いしたいです
Mirakurun導入中ですが
「ブラウザでUbuntuのIPアドレス:40772にいけば、Mirakurunが起動」
の具体的な手順がわかりません
使用ブラウザfirefoxです
きっと非常に基礎的なことでしょうがよろしくおねがいします おっさんのテレビ離れが進んでんのに、このスレの存在意義って おっさんのテレビ離れなんてマジで進んでんの?
若者のテレビ離れ、テレビなんて見てるのはおっさんぐらい、ならまだわかるけど。実際はテレビ見てるのはBBAがメインな気もするが。 >>870
どんな分析したの?
録画サーバー使ってんのは
主にアニオタです
専業主婦の、おばさんは
リアルタイムでワイドショー見てんだよ
私は、ドラマ全録してます
見きれないでほぼほぼ消しちゃうんだけど… おっさんのテレビ離れなんてマジで進んでんの?
実際はテレビ見てるのはBBAがメインな気もするが。
結論、BBA以外見てない
ここ迄書いても結論とはうんたらかんたらってなるんだろーけどね >>872
だから
どんな分析してんだよ
SNSとかで、録画サーバーで何みてんの
って観察したら
ほぼほぼ、アニオタです
私も見てますけど…
ぶちゃけ、PrimeVideoとかだと
1週間遅れだったりして、最新話見たかったら
dアニメ契約しろよってのが
散見されます
ところで鬼滅終わっちゃったな
早く続きみたい テレビ離れなんて実際は進んでないよ
今はテレビという電器製品で見る機会が減っただけで
インターネット経由で見てる人たちが多い
中国人は特にね日本人が遅れてるだけ コマーシャルだって従来同様に流れてるから
企業はよけいにもうかってるよ >>874
テレビってかコンテンツによるんじゃないの?
ニュースや、ニュースバラエティーってバラエティーって付けたからいいでしょ?
って放送法をガン無視した報道っぽい胡散臭い嘘まみれな
ワイドショーなんか、どうせイラン洗脳してくるってだけですので
絶対に見ません
たまに、ドラマとかに、反日ねじ込んでくるがあるので
そういうのは、ブラックリスト行きで
即切りします >>877
いまはコンテンツによる勝負なんだと思うよ
つまらない番組は配信されてても見なくなるんだから
アクセス数だって集計できる 放送局が製作したコンテンツはやはりおもしろい
YouTubeで個人配信したのと比べるのが間違い >>878
テレビ業界は、未だになんつたっけ?
忘れたけど一家に一台のテレビで
なに見たの?
ってザルの視聴率で優劣争ってんでしょう?
私は、録画してからの視聴ですけど
大半のCMはスキップしちゃいますけど、CMも含めて視聴しています
そもそも、制作費出してるのは広告主のスポンサーですからね Ubuntu server 22.04.2 LTS とl3tnun/docker-mirakurun-epgstationの組み合わせで
サーバーマシン入れ替えた関係でクリーンインストールしたら http://IPアドレス:8888でアクセスできませんとなってしまうんだけどなんでだろう?
同じ設定で、マシンリプレイス前は動いていたのに。。。
sudo docker-compose logs -f epgstation
としても異常があるように見えないし、Mirakrunはhttp://IPアドレス:40772で不通に見れるし、Windows機のTVTestからBondriverMirakrunで問題なく接続できていてEpgstationだけがアクセスできない。
epgstation_1 | [2023-08-05T00:09:40.722] [INFO] system - config.yml read success
epgstation_1 | [2023-08-05T00:09:40.730] [INFO] system - check mirakurun
epgstation_1 | [2023-08-05T00:09:40.754] [INFO] system - check db
epgstation_1 | [2023-08-05T00:09:40.832] [INFO] system - start service pid: 29
epgstation_1 | [2023-08-05T00:09:40.833] [INFO] system - start recordings cleanup
epgstation_1 | [2023-08-05T00:09:40.840] [INFO] system - finish recordings cleanup
epgstation_1 | [2023-08-05T00:09:40.841] [INFO] system - start reserves cleanup
epgstation_1 | [2023-08-05T00:09:40.845] [INFO] system - finish reserves cleanup
epgstation_1 | [2023-08-05T00:09:40.850] [INFO] system - start epg updater pid: start
epgstation_1 | [2023-08-05T00:39:44.071] [INFO] system - all reservation update finish
epgstationのアップデートが関連しているんかな >>882
うちも、ちょうど、Ubuntu20.04のアプグレに失敗しちゃって
22.04で再構築している最中なんですけど
ドンピシャのタイミング(7月末)にEPGStationのアップデートが
あったらしくて、起動できないで困っていました
で
Ubuntu20.04でEPGStationを構築するレシピサイトの方が
調べてくださって
epgstation/data/
に「upload」ってディレクトリを作ることで、エラーを回避できるそうです
うちもそれで起動できました >>884
epgstation/logs/Service/system.log
に
[FATAL] system - uncaughtException: TypeError: Cannot read properties of undefined (reading 'sync')
[FATAL] system - uncaughtException: Error: must call SocketIoManageModel initialize
こんなエラーが出るんですよ
それの回避策が>>883
そのうち治るとは思うけど >>883
ありがとうございます、ディレクトリ作ってrestaetしたらあっさり美味しい起動しました! FUTEX2でWaitForMultipleObjectsパクったからTVTest+Bondriver完全移植できるやろ
早く移植してくれ! >>888
やれると思うなら、自分でやってみればいいじゃない
MFCアプリどうやって移植すんのか
私も知りたいです >>888
TVTest+Bondriver
って使ったことから、どんな物だかわかんないし
MFCアプリの移植方法もわかんないけど…
Linuxユーザーなら、EPGStaionでどうにかなりますよ
さらに、私は専用のクライアントアプリも作っていますし
興味があったら使ってみてください
で
いままで、使ってる方(居るかわ知らん)は
mpvのv0.35で、なんや仕様変更で廃止になちゃったのがあって
その影響でアプリが起動できないとか問題が起きています
Archや、Fedora、Ubuntuの最新版使っている人は更新してください
https://gitlab.com/oioi555/QEPGS-Player/-/releases 何が起きたのかわからないので聞いてくれ。
epgstation, mirakurun, mysql, (+mediatomb)をdockerで起動させているが、
25日の金曜日にGPUの差し替えでPCIバスがふさがってしまったのでPT2を抜いておいた。
この時点で/dev/dvb/..が存在しないのでmirakurunが起動に失敗していた。
で、26日の23時頃にPCIe -> PCI変換がキたので先程復帰させたんだが、
epgstationで見ると録画済みが18日までしか存在しておらず(実際にはそれ以降も録画ファイルは存在している)mysqlを確認したら録画されてるファイルの履歴がrecordedテーブルに存在していない。
/var/lib/mysql/epgstation/のファイルのタイムスタンプも8/18となっていた。
つまり1週間ほどデグレしてしまったような状況だけどそんなことありうるの??? >>891
不思議ですね
たしか、録画ファイルから
データベースに登録する操作あったと思うので
それで復元してみてわ >>893
あ
そうでしたっけ
あぶなく、録画ファイルまで失くなっちゃうところだった
ごめんなさい
それにしても、不思議な症状ですね
recordedのレコードって、過去形になってますけど
録画開始時に追加されんだよね
ほんと意味わからん あ
実際に録画するのは、ミラクルンだから、EPGStaitionからの
録画指示は生きてて
Recordedのレコードの登録が、なんでか知らんけど行われなかった
ってことなのかな
それにしても、経験ないし未知ですね >>895
そうなんですよ。ts->mp4変換などもしてたんですがDB上はtsのままでファイルが見つかりませんとか。
明らかに過去に戻ってる気がします。
しかもPCIe -> PCI変換したらdeviceは見えてるんですが
録画も視聴もできなくなった><
いったんもとの構成に戻そうかな。。ポルナレフに気持ちがわかったわ >>896
ん
エンコに失敗した場合は、Recordedのレコードまでは消えないよね
逆に、エンコ後にTS削除って設定してると、エンコ失敗して、mp4ファイルできてないのに、TS消されちゃって
なんも失くなっちゃうって事故ならあるんですけど
ますます意味がわからん 多分mysqlのコンテナにvolumeマウントしてなかったんだろ >>893
録画済みからクリーンアップしたらデータベースに登録されて無いファイルは削除されるけど、アップロードならデータベースに登録する操作になるんじゃないかな?やったこと無いけど。 すいません。解決しました。dockerのデータディレクトリを変更してたのを忘れました。
aptで更新された際にデグレしたようです。
お騒がせしました。。 PCIe -> PCI変換もFDD4pin電源刺してなかった。
スレ汚し申し訳ない。みんなも気をつけよう >>900
べつにあやまる必要はありませぬ
いまやこの板にとってスレタイ読めるまともなユーザーは貴重な存在ですし
もし、本物のバグであったのなら、多くの人のためになります
とりあえず、問題が解決して良かったですね グラフィックボード Intel Arc A730M
冒険したな >>905
IntelはLinuxの優等生だから
悪いチョイスでも無いんじゃないの?
冒険ちゃ冒険だけど…
それにしても、録画サーバーRyzen5 5600Gにアップグレードして
ようやっとエンコ生活始めたんだけど
6コア12スレッドでゴリゴリやっても
エンコ中はCPU負荷50%ぐらいいっちゃうんだよな docker-mirakurun-epgstationならcpusオプション付ければ簡単に制限できるけど、そういう問題では無い? >>906
ハードウェアエンコードしないとそれぐらい行くんだね...
自分は同じCPUだけど、ハードウェアデコードですぐカーネルが落ちるので閉口した
デコードの負荷は高くないから 諦めてソフトで再生してるけど...
何度かVCNのファームアップデートもあったけど一向に治らないし、同様のレポートもたくさんある
https://gitlab.freedesktop.org/drm/amd/-/issues/?sort=created_date&state=opened&label_name%5B%5D=VCN&first_page_size=20
このあたりがIntelとの違いか... 先代のIntelのハードウェア支援は安定してた >>907
え
もしかして、CPUの使用率制限できんのけ?
>>908
私、AMD教徒なんで、はなからハードウェアデコード諦めて
CPUでゴリ押ししようって計画だったんですけど、想像より負荷高かった
まぁでも、最大8ch同時録画の環境で
録画とかぶっても、まぁなんとかなってるから、いいんだけど
サーバーに、KVMで仮想のホストさせってから、もうちょっと負荷下がんないかな~
とは思っています >>909
docker-compose.yml
の以下の場所にcpusオプションが指定できますよ。
以下の様に6だと6スレッド使う(コアだったらごめん)。
12スレッドのCPUで6なら半分だし、俺の使ってるcorei5 8500tなら6で100%。
epgstation:
build:
context: "./epgstation"
dockerfile: "debian.Dockerfile"
deploy:
resources:
limits:
cpus: "6" >>910
Dockerなら
そんな指定できるんですね
ありがとうございます
ハードのアップグレードを期に
Docker版にしたのでやってみます
録画負荷含めたトータルで50%ぐらいなら安心かな arch linux入れたけど vainfo がCPU内蔵の方しか見えてなかったり色々謎
/dev/dri/rendrD128 129 は出来ていたからドライバ的には対応してるんだろうけど
ffmpeg のオプションでどのデバイスを使うか明示すればArc使ってくれそうだけど、両方使うのどうやるんだろ
何も考えずにffmpeg叩いたら動いたりするのかな vainfoなら--deviceオプションでしょ
iGPUとdGPU(Arc)を協調する機能はIntel Deep Linkっていうのがあるけどffmpegではまだ使えなさそう
デコードをiGPU、エンコードをdGPUとかはできるけどあんまり意味はないだろう >>914
windows限定なんかサンクス
取りあえずWindowsに戻して動かしてみるか >>908
せっかくだし、そこそこ強力なGPU内臓のAPUなのに、もったいないから
めんどくさいけど
ハードウェアエンコをクライアントで使ってるManjaroで試して見たんだけど
CPU負荷が数%代とか劇的に負荷さがった
amfのドライバーは、AURでサクッと入れれたんだけど
録画サーバーUbuntuだし、しかも、Dockerでどうやんのか訳わからん
どっか良いレシピサイトしりませんか? 昔ちょっと探したけど
良いのがなかったからサーバをManjaroにした記憶がある >>917
もう、いっそのことManjaroにしちゃうおうかって思ったぐらいにめんどくさいです
まず、AMDのサイトに行って、ubuntu用のdebパッケージ拾ってきて、そいつをインストールしてから
インストールコマンドでインストールすんだけど、何度やっても、依存関係でインストールできなくって
32版入れようとして、コケてるから
インストールオプションで、32bit要らねって指定してようやくインストールできたんだけど
ffmpegが、認識してなくて使えない
もう疲れて、そこでやめた ちょっと探したらffmpegの古い情報↓みたいのがあった
VAAPI
https://trac.ffmpeg.org/wiki/Hardware/VAAPI
AMF(ただしAMFはLinuxでまだ使えない?時の古い情報?)
https://trac.ffmpeg.org/wiki/HWAccelIntro
でもdockerだったらDRIデバイスをパススルーでアタッチ?とかしなきゃいけないんじゃないのかな...
可能なのかもわからないけど...
個人の録画サーバでdocker使う意味ってなんなんだろ... appImageとかでもいいような >>919
AMFは、Linuxで使えるようになったみたいだったんで、とりあえず、Manjaroで試してみた
ffmpegも、バージョン4からだったか
勝手に認識するとか、どっかでみて
Manjaroは、AURで、amf-amdgpu-pro
っての入れただけで使えたんだけど
Ubuntuの方は、まだどうなってんのかよくわかんない
で
docker使う理由はインストールが楽になるからでしょ
nodejsだし、DBサーバーも、ミラクルンも必要だし、appimageじゃ難しいとおもいますよ
公式にNVIDIA用だったかの、dockerイメージあったから、それみて考えるかな
最悪、dockerやめて、素でインストールしてもいいし
ねむい AMD Radeon Vega Graphics + Ubuntu 22.04だと
https://repo.radeon.com/amdgpu/22.20.3/ubuntu/pool/main/a/
あたりからamdgpu-installを落として
sudo amdgpu-install --usecase=amf,opencl --vulkan=amdvlk --no-dkms --no-32
で、/opt/rocm/bin/clinfoが動けば成功
ffmpegはamfを入れてから自ビルドする
dockerは知らねー >>922
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki/Driver%20Linux
ここみて、インストールしたんだけど
-no-32
がわかんなくてハマりました
やっぱ、vulkanの方がいいのかな
AURのヤツも、Vulkanはいってんだよね
帰ったら、続きやってみます
ありがとう 半年ほど前にvaapiでハードウェアエンコード環境構築したけど役に立ちそ?
BSはvaapiだとノイズまみれになるのでBSはソフトウェアエンコードだけど、2kモニタで見比べても見分けつかない程度には設定だしたつもり
watchdog絡みの話やエンコードを途中で止めたりエラーで終わるとゾンビプロセス発生するけどそれを回避する設定とか >>924
役にたつとは思うけど
まだ、そのステップにまで到達していません
王道なら、vaapi使うんでしょうけど
ハードウェアエンコ初心者の私のとっては違いがよくわかんないんです
いろいろ漁ってたら、私とほぼほぼ同じ、Ryzen APUの、先人を見つけました
https://github.com/gitune/set-chapters-at-silence/wiki/HEVC-H.265-hardware-accelerated-encoding-on-Ryzen-mini-PC
画質の問題で、ハードウェアエンコやめちゃったようなんですけど
私が求める物は、サーバーに以外の仕事もさせてるので、CPU負荷の軽減なんですが、そこの効果は、ファンがうるさい、うるさくないって報告に直結しています
で
私はエンコードしてなかったけど
BSを録画したTSを、ハードウェアデコードで再生した場合
ブロックノイズがでたり、最悪フリーズするって現象を確認しています
(たぶん、日本のBS規格がガラパゴス)
私が、公開している、EPGstation専用の、視聴アプリの、QEPGS-Playerでわ
BSの録画だったら、ハードウェアデコードを無効にするってオプションをデフォルトにしています
まだ、エンコとの因果関係わ
わかんないけど AMDのハードウェアデコード使うと しょっちゅうカーネル落ちる
VegaのAPUだと特に多い感じ >>910
忘れてた。
このオプションつけたら起動コマンドにもオプションつけないと駄目らしく、
sudo docker-compose up -d
ではなくて
docker-compose --compatibility up -d
にしろって書いてたのでそうしてます。 >>922
ダメでした
ドライバーはエラーはなく
インストールはできるんだけど
ffmpegのconfigerで
--enable-vulkan
がエラーになっちゃって有効にできない
https://ffmpeg.org/pipermail/ffmpeg-user/2023-September/056774.html
今月の話じゃん、ほんとついてないな
呪われてんのか
AMF使えてる、Manjaroで、ffmpeg -hwaccelsコマンドで、vulkan出てくるし
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki/Driver%20Linux
にも、AMFは、Vulkan使うって書いてあるし
ffmpegで、vulkan有効にできないまま
エンコードしようとすると
AMF failed to initialise on the given Vulkan device: 1.
って怒られる
あーあ、摘んだ摘んだ
しょうがないから、素直にvaapiにすっか
まじ疲れた >>926
BS録画したやつだと、FireTV Stickにいれた
kodiでもハードウェアデコード有効にするとへんなになるよ
下手するとPCフリーズしちゃうからご注意を…
>>927
もうやになったよ
いっくらググってぶっ壊れてるとかそんなのばっかりヒットします
Manjaroでは、秒で使えたのにさ
因みに、Manjaroでは、Kdenliveで
AMF使えるようにしといた >>929
ffmpegのmasterブランチじゃなくてrelease/6.0ブランチを使えばいいんじゃないの?
問題になってるvulkanのバージョンチェックの変更も入ってない
あとAMFのインストールのページちらっと見た時、radvじゃなくてamdvlk (pro?)じゃないとダメみたいの見た気がするけど... >>932
vulkan=amdvlkがオプソ版で、それも機能しないって言ってる人いるんですよ
proが、オプソじゃないやつだけど
ぶっ壊れてるから、vaapi使えって言ってる人もいて
もう疲れたから、AMFのドライバーもビルドしたffmpegも消して
vaapiのレシピ漁って、そっちの構築始めました
ホストでvaapiのエンコ試してみたけど、GPU負荷20%ぐらいで、CPU負荷数%だから、こっちでいいや
dockerで使う方法も解説してるサイトあったし # wget 俺が使ってるのはffmpeg-4.4でUbuntuのffmpeg configureで--enable-vulkanをしていない
wget -O ffmpeg-4.4.4.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.bz2
tar xjvf ffmpeg-4.4.4.tar.bz2
mkdir $HOME/ffmpeg-build
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
../configure \
--prefix="$HOME/ffmpeg-build" \
# AMF SDK のダウンロード
git clone https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git
# AMF SDK の配置
cd AMF/amf/public/include
sudo mkdir /usr/local/include/AMF
sudo cp -r ./* /usr/local/include/AMF/
.bashrc
export VK_ICD_FILENAMES=/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json
ffmpeg -ss 1 -i "in.ts" -vf "format=nv12, bwdif, scale=1280:720" -c:v hevc_amf -quality quality -min_qp_i 18 -max_qp_i 28 -min_qp_p 18 -max_qp_p 28 -header_insertion_mode idr -g 120 -rc vbr_peak -vbaq false -maxrate 10M -b:v 2.5M -filter_complex atrim=start_sample=1024,asetpts=PTS-STARTPTS -codec:a libfdk_aac -b:a 128k "out1.mp4"
Stream mapping:
Stream #0:1 (aac) -> atrim (graph 0)
asetpts (graph 0) -> Stream #0:0 (libfdk_aac)
Stream #0:0 -> #0:1 (mpeg2video (native) -> hevc (hevc_amf))
Stream #0:1: Video: hevc (hev1 / 0x31766568), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 2500 kb/s, 59.94 fps, 60k tbn
hevc_amf 1280x720 60p.mp4 557.0 MB >>933
まあもうvaapiでやるってことだからいいんだけど
>>929 での https://ffmpeg.org/pipermail/ffmpeg-user/2023-September/056774.html の問題は
release/6.0ブランチでは
https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/6.0:/configure#l7014
だから関係なくなるようになってる
vulkan-icd-loader と vulkan-headers のパッケージ(archの場合だけど)さえインストールしてれば
--enabel-vulkanでビルドくらいはいけそうな気がするけどね... >>934
アドバイスありがとうございます
ffmpeg-4.4.4を入れてみたら
関係ないとのことですが、一応vulkan有効にできました
サンプルの変換コードでエンコードしてみましたが
CreateComponent(AMFVideoEncoderHW_HEVC) failed with error 11
とうエラーになってしまいます
入れたのは
https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-22-40
Radeon™ Software for Linux® version 22.40 for Ubuntu 22.04.1 です
AMF動いてたとしても、Dockerからの使い方検討もつかないので
おとなしくVAAPI使います
録画で運用中なので、時間帯によって再起動できない
つか、疲れた
vaapiのエンコのスクリプト詰めないと…
こっちは、とりえずDockerから使えるようにはできました >>935
最初、Manjaroで試して、AURから、amf-amdgpu-pro
いれたら、すぐ、ffmpegなんもいじらなくても
h264_amfで、エンコードできちゃったから
簡単かと思って手を出したら沼でした >>924
やっとその話理解できる所まできました
普通は高速化の為に
TSのHWデコード→HWエンコード
って指定していると思いますが
BSのHWデコードに問題があるので
TSのソフトデコード→HWエンコード
ってやればノイズなくなるはずです
少しだけ、CPU負荷あがりますけど 2019年8月に買ったPX-S1UD V2.0の2本目が先週壊れたな。
ラズパイにつなぐと寿命が短いのかな。 みんな2枚刺しとかしてる?
分波器使うと減衰しない? >939
一度チューナ使うと、そのあとずっと電流が多い状態になるので、熱じゃないかな >>938
それな
一応ffmpegの設定も調べ上げてあるんだけど、試すの面倒になっちゃって安定してるのもあってそのままw >>943
原因が特定できてよかったです
具体的には
-hwaccel vaapi
-hwaccel_output_format vaapi
この2つのオプションを無くせば良いだけだと思います >>944
PT2の人だったのか
つか、変態かよ
8ch同時録画なら、PLEXのがありますよ
うちのは、地上波4+BS/CS4
のヤツだけど、今売ってるのだと
地上波でもBSでもCSでもどれでもよくて合計8chってやつ
つーか、PLEXも品薄になってきたな >>946
PT2が壊れなさすぎて予備のPT2を使う機会もなく使えない世の中になる前に使っておこうと思って変態になりました。
コンデンサー無いからですかね?12年使ったPT2でも何ら変わりない。
ってか、変態認定からの扱いの変わりようww >>947
ん?
気のせいですよ
私はいつもこんな感じです
勝手な妄想ですけど
ここで、PTシリーズのカーネルドライバーのメンテしてくれてる人に
PTのカード壊れちゃったから
誰か提供してください
って呼び掛けに答えたの
どうせお前なんだろう?
あのやり取りは、5ch始めて以来一番感動しましたエピソードですた
この野郎 ライザーカードで非正規の位置に無理やり固定してるから、絶縁か怪我防止かな? レス数が950を超えています。1000を超えると書き込みができなくなります。