Linuxでテレビ総合スレ 避難所4
■ このスレッドは過去ログ倉庫に格納されています
>>746
情報THX.
パッチは作ったけどコミットしてないって投稿は見かけたが、すでにコミットされていたのか。 https://github.com/stz2012/libarib25
SSE2,SSSE3,SSE4.1,AVX2,NEON対応に今更気付いた
Celeron N3050で録画中のCPU使用率が数%下がった Harekazeがpvr.epgstationになった模様 Epgstationで保存するTSファイル名だけど、
最終回とか再放送とかを「 🈡 」 って感じに一文字に保存できない?
sqlite3使ってる。 ラズパイのh264_omxだとアスペクト比どうやっても指定できないっぽい
再生側で自動的に16:9にしてくれれば問題ないけどそういう機能ないと詰むね
EPGStationでHLS配信するとどう調整してもアスペクト比崩れるからおかしいと思ったんだ omxってリサイズとかもできないとか制約多かった気がする。 >>754
この事情はv4l2でもやっぱり変わらないんですかね。
あとはスケールさえできればいいんだがなぁ… 時々TSファイルが破損して最初と最後しか見れないファイルができます。
映画とかで本編以外の最初と最後は見れるけど、本編始まるところくらいから再生不可で終わったところくらいからまた見れる。
TSファイル自体のサイズは小さくないので記録はされてそう。
これって途中でプロファイル変わったのにTSファイルに変更されたプロファイルが記録されてないから起きる現象?
ubuntu + w3u4 + mirakurun + epegstationという環境です。 俺もこの間容量だけは普通にあって再生しても何もないファイルができてたな
俺はRaspbian + W3U4 + mirakurun + EPGStation >>759
いや、色んなので再生してもダメだった
エンコードしてもダメな部分だけ飛ばされて前後だけMP4になるという始末
(もちろんサイズは前後分だけになる)
容量的には書き込んでるはずなんだけど… いろんなのでやったダメな結果はどれも対応できてない事象と推測される
Tvtplayあたりでためせばトラップか否かわかるのだろうWindowsだけど つまりは再生できないのは映像音声のなにかしらの切り替わりあたりの非対応が基本推測なのだろうから
対応プレイヤで再生してみるか切り替わり前(後)の不要部分を除去して再生してみるのが基本手なのだろう Linuxに本編の5.1chだけにするソフトとかあるの? >>757
ファイルの先頭を削ってみたら?
数字の 10 の部分はカット&トライで。
% dd if=入力TSファイル名 of=出力ファイル名 bs=1M skip=10 >>765
今度同じようなファイルができたらやってみます! 3年前から、住まいに、ジェイコムが入り、昨年の夏くらいから、普通の地デジも観れないです
これらの方法は、通用しるでしょうか
コロナだし、STB経由は、絶対に嫌だ
ぼろ家だけど、UHF、VHFの、両方の、出力が壁にあり
ネットの、光のジャックまであるから、前までは、片方、好きなように、BSと地デジに、つないで見れていたから、ジェイコムの仕業だと思う
か。規制が強化されたのかと。
ちなみに、★1、★2は、カードのデザインが変わっただけだと、先日、B-casカード会社の人が、言ってました JCOMと大家がどういう契約してるのか知らないけど、パススルーがなくなって完全トラモジのみなら
STB経由にするしかないね。でSTBがCCASじゃなくてACASなら終了w >>767
賃貸なら大家とか管理人にまず相談だね
手っ取り早く窓際にスマートアンテナとか建てちゃってもいい気もするけど T230Cをアリで買えば見れるはず
もしくは高いけどMAX M4 思ったより調査に時間かかって疲れたけどh264_omxでアスペクト指定できるようになったよ
ffmpegのソース持ってきてlibavcodec/omx.c の510行目あたりに下の囲いの中の部分挿入して
それをコンパイルした奴を使えばコーデック内のSPSにアスペクト比というかSARが入ってアス比情報ロストしない
_________________________
// aspect ratio
OMX_CONFIG_POINTTYPE config;
config.nSize = sizeof(config);
config.nVersion = s->version;
config.nPortIndex = 201;
config.nX = avctx->sample_aspect_ratio.num;
config.nY = avctx->sample_aspect_ratio.den;
err = OMX_SetParameter(s->handle, 0x7f00004d, &config);
CHECK(err);
__________________________
ソース持ってきてコンパイルしてインストールするまでは↓ブログそのままでいける
https://www.kaoriya.net/blog/2017/10/07/ あ、一応素のh264_omx使っても-f mp4でエンコした奴はコンテナ?自体が
アス比情報保持してるからほとんどはそっち読み込んで問題は起きない
-f指定しなかったり-f hlsの時にコンテナにもエンコしたフレームにも情報がなくてアス比壊れる事になる
基本的にはEPGStationでhls配信したい人だけ気にすればいいと思う >>765
同じようなファイルができたのでやってみたけど駄目でした…
WOWWOWシネマを続けて連続で録画予約すると、1つ目だけ正常に再生できて2つ目以降は6本中1本のみしかまともに再生できず。
連続で録画しなければ大丈夫なので、他のチャンネルでも連続録画で失敗するか予約してみたところです。
特定のチャンネルだけだと解決難しそうですね。 チラ裏レベルのラズパイ4の話で悪いけど環境メモ
・さんぱくん外出に挿すケーブルは芯線を長くしないとだめ自分でコネクタつけれると楽
・EPGStationのconfig.jsonライブ配信用のoptionは-re消すと軽くなる(環境によっては問題起きる?)
・hls配信でアス比が崩れるのは>>771のコードで対応
・リポジトリに登録されているversionのffmpegだと動作が不安だったので
gitから最新版checkoutしてそのままだと足りなくなってるファイルが結構あるんで
いらなそうなオプションばっさり適当に消して下記最適化オプションconfigureに追加してからビルド
--extra-cflags="-O3 -mtune=cortex-a72 -mcpu=cortex-a72 -mfloat-abi=hard -mfpu=neon-fp-armv8 -funsafe-math-optimizations"
--extra-cxxflags="-O3 -mtune=cortex-a72 -mcpu=cortex-a72 -mfloat-abi=hard -mfpu=neon-fp-armv8 -funsafe-math-optimizations"
--arch=arm --cpu=cortex-a72
(場合によってはlibdirの後ろに/neon/vfp)
これでラズパイ4で長時間ライブ視聴しても問題起きずエンコやHLS配信も問題なしで安定した >>771
v4l2でこれ相当をやる方法ってないですかね >>774
なかなか参考になるのでありがたい
おつ >>774
-reオプションは付けないと駄目だぞ
エンコードが早いとmirakurunのストリームを読み切ってhlsストリームが止まる >>777
ffmpeg最新版使う前に問題があったから-re外してたけど
戻してみたら問題なかったから-re戻て使うよありがとう
元々aptから持ってきた物だと-reつけると何故かフレームが遅れ出して最終的に配信止まってたんだけど
-re切ったらまずいよなと思いつつ試してみたら落ちなくなった経緯があったんだよね
ラズパイだとエンコ速度が1.4倍程度しかないから切断までいかなかったのかもしれない
いずれにしても最新版ビルドした奴だと-reつけても問題なくなったから
aptにある現在のバージョンだと環境によっては若干具合が悪いのかもしれない >>773だけどスターチャンネルでもダメだった。
やはり同じチャンネルを連続して録画すると最初のもの以外は本編だけ再生できないファイルができた。
全部ダメならわかるけど、最初だけは問題ないから不思議。
チューナーが壊れてるのかな… >>771
ffmpegにパッチ送ったら採用されそうだね >>781
同じチャンネルで連続の場合のみスクランブル解除失敗とかあり得るのかな?
連続してなければ大丈夫だし、連続でも最初の1本はまともなファイルなのよね…
もしそんな問題を抱えてるなら、同じようにubuntu+mirakurun+epegstation+softcas使ってる人は皆なりそうだけど。 >>783
それはどうやって回避できるのでしょう?
epegstationのconfigは全部見たけど、手動予約しか録画前後のインターバル設定がなかった…
もしそうなら他の人は起きてないのだろうか。 mirakurunにmaxBufferBytesBeforeReadyというのはありますね。
使ってるNUCのPCUがi7-10750Hなので速すぎるとか?
(でもそうだと普通のデスクトップCPUでやってる人は皆起きそうけど…)
もう少し小さくして録画開始をほんの少し遅らせることはできるのかな。 >>8786
有力な情報ありがとうございます。
先ほどCS放送を連続録画したら問題なかったので、正にこの修正履歴みたいにWOWWOWとスターチャンネルでしか起こらない感じですね。 CAS太郎が書いているsoftcasを使うパターンだと古いpt1のソースを使ってるみたいですね。
最新のpt1のソースを使って構築しているサイトだとカードリーダーを使う前提で書かれてました。
softcas使ってる人で最新のpt1ソースを使っている人はどこを参考にしているのでしょう? あ、単にCAS太郎が書いているc44e16dbb0e2ブランチではなく、b25の方の最新のec7c87854f2f ブランチを取得してビルドすればいいのかも。 >>790
有力な情報はもらいましたので、もちろん自分でやります。
b25ブランチの最新nodeであるec7c87854f2fを落としてきてmake installしました。
あとはWOWWOWやスターチャンネルの連続録画が上手く行くかですね。
(この確認に数時間掛かってしまう)
あえて古いc44e16dbb0e2ノードをCAS太郎が指定している理由がわかりませんが、これで上手く動けばいいですが… ec7c87854f2fをインストールしてみましたが、やはりWOWWOWでの連続録画はできませんでした。
TSファイルの最後の30秒〜数分が再生不可になるなど、むしろより悪化した感じです。
CAS太郎があえて古いソースを使った理由の一つだと思います。
>>786が書いているようにhoneyplanetのものを使わずにlibaribb25に置き換えた方がいい気がします。
軽く探した感じだとlibaribb25をsoftcasで使ってる人の記事が見当たらないので、softcas使ってる人は殆ど同じ問題が起きてるんじゃないかと思います… 現在テスト中ですが、CAS太郎が書いているhoneyplanetのc44e16dbb0e2でも解決できそうです。
ソースを見たらlibaribb25で対応が入っているソースとc44e16dbb0e2のソースでは、proc_pmt関数は同様のようです。
なので、libaribb25のコミット履歴の差分と同じ修正を入れれば、honeyplanet版でも同じ修正が入ると思われます。
誰かが既に対応しているかを探さず、最初からソースを確認しておけばよかった…
3本くらいは同チャンネルで連続して録画確認してみるので、数時間後には結果がでるかと思います。
>>786さんに感謝 色々調べてたらhoneyplanet使うよりもstz2012/libarib25を入れた方がいいかもしれませんね。
softcas使う部分はカードリーダーと使うライブラリを入れ替えるだけですし。 一つ疑問なのは、違う番組(?)数本まとめて録画する運用ってどういうものなの。
一つ一つのファイルもでかくなるし、何が録画されているのかが把握しにくくない? >>796
予約上は別番組でできるファイルもちゃんと分かれてますよ。
例えばターミネーター1から4までが連続で放送される場合。
シリーズを通して4本分連続で録画すると、TSファイルはちゃんとファイルも分かれてるけど
内部的にはチューナーの受信が途切れないから連続して受信していると判断されるのかも。
で、最初のターミネーター1のTSだけは再生可能で、それ以降はスクランブル掛かる部分で再生不可になるという感じ。
WOWWOWやスターチャンネルは、放送内容とかの部分だけスクランブル掛からないので。 >シリーズを通して4本分連続で録画すると
手動じゃなくてepegstationの番組表から連続で予約という意味です。
手動であえて時間指定の連続録画ではないです。 >>797
あーなるほど。
理解した。thx
無事解決することを祈ってる。 >>800
差分を修正してmakeするをやめて
CAS太郎の「ラズパイとPX-W3U4で録画リグ構築。」の流れを保ちつつ(Ubuntuではありますが)
arib25とrecpt1の部分だけstz2012/libarib25とepgdatacapbon/recpt1を使用するように変更してテスト中です。
これで上手く動くようだったらCAS太郎の「arib25、recpt1の導入」の部分だけ上記に変更した内容を書きます。 T230Cを使ってJ:COMのBSを受信しようとしているのですが、以下のサイトを参考にやろうとしています。
http://blog.lwlv.net/archives/1249
ですが、チューニングの項目の、
dvbv5-zap -C JP -a 0 -c /usr/local/etc/dvbconf/dvbv5_channels_t230_dvbc.conf <channel>
をやろうとすると
「bash: 予期しないトークン'newline' 周辺に構文エラーがあります」
とエラーが出るので
dvbv5-zap -C JP -a 0 -c /usr/local/etc/dvbconf/dvbv5_channels_t230_dvbc.conf '<channel>'
としたところ、
「ERROR: Can't find channel」
となってしまいます。
どうすればうまく動くようになりますか? >>802
このコマンドは動きませんでしたが、とりあえず視聴はできるようになったので、自己解決ということでスレ汚しすみませんでした。 本当はlibarib25にsoftcasを組み込めばいいんだけど。 WOWWOWやスターチャンネルの連続録画でスクランブルが解除されない件のテスト結果です。
>>801の方法だと2本目以降でスクランブルが掛った直後にファイルが分割されてしまいました…
スクランブルは解除されていますが、必ずファイルが分割され、且つ分割時に少しTSデータの欠損が起きてしまうのでやめました。
CAS太郎の方に戻してc44e16dbb0e2のソースに対して>>786の差分を入れて make install し直しました。
スターチャンネルはファイルの分割もなく問題なく4連続で録画できました。
WOWWOWシネマは現在テスト中ですが、取り合えず連続録画の2本目はスクランブル解除できてます。
あと2〜3本録画が終わって問題なければ上記対応で大丈夫そうです。 >>805
実際あるよ
昔どっかで手法が公開されたんで利用してたけど
ブクマしてなくて再構築の時に面倒臭くなってやめた >>805
>>807
libpcsc互換のライブラリ作ってcmakeでオプション指定するのはダメなん?
https://github.com/stz2012/libarib25/pull/8
俺はwinscard.iniと同じ形式のファイルを読み込めるようにした互換ライブラリ作ったけども >>810
俺が言ってるのは同じ人のdtvtoolsだった気がするわ
つかsoftarib25は過去スレから拾ってたみたい >>810
>>801はそれでやってsoftcasをリンクするようにして試しました。
結果>>806になりました。
CAS太郎の作り方をベースにしてるとファイルが分割されてしまいました。
CAS太郎からの変更
〜以下の部分を変更〜
# arib25の導入
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25
$ nano CMakeLists.txt
set(PCSC_CFLAGS "pkg-config libpcsckai --cflags")
set(PCSC_LIBS "pkg-config libpcsckai --libs")
の2行を先頭行「cmake_minimum_required(VERSION 2.8.5)」の後に追加
set(WITH_PCSC_PACKAGE "libpcsckai" CACHE STRING "pkg-config package name for PC/SC")
の「libpcsclite」を「libpcsckai」とし、保存する
$ nano cmake/FindPCSC.cmake
この中にも「libpcsclite」があったので「libpcsckai」とし、保存する
$ cmake .
$ make
$ sudo make install >>809
CAS太郎が使っているhoneyplanet版(c44e16dbb0e2)arib25のソースarib_std_b25.c用のパッチをアップロードしました。
patchコマンドでパッチを当てれば差分が当たります。
https://ux.getuploader.com/akioka1962/download/14
パッチ適用済みファイルをDLする場合は以下をDLして入れ替えてください。
https://ux.getuploader.com/akioka1962/download/15 >>812はCAS太郎版を使っている人はファイル分割されるので要注意です。
stz2012のarib25を使っている人は、この方法でsoftcasに置き換えれますよ、ということで。 >>810
その外部からキー読込できるようにしたやつの差分がほしい 文字列読み込んで16進に置き換えれば良いだけだから、そんなに難しくない気もするけど、ちゃっちゃとソース弄ってビルドするのと手間暇はそんなに変わらなくね? そうだね。
すでに動いてるのがあるならその差分もらえたら確実だな思ったんだけど、自分でini読み込み機能追加した。 RPi4 64bitOS+EPGStationでv4l2を使ったMP4配信のFFmpegコマンドオプションって、成功した人はどう設定してるの?
ログ見る限りFFmpegは動いているのに、画面がくるくる表示して映像が表示されない、、、 >>819
raspberrypios64bitはまだベータ版らしいから
まだ対応していない可能性? libarib25のb_cas_card.cにcasを組み込んで直接デコードさせるコードが存在する。
ちょっと探してみる。
https://github.com/stz2012/libarib25
の5b24f2fへのパッチで、
make installでlibarib25.soと、Kwを記載するlibarib25.confが
libディレクトリにインストールされる。 ところでCAS太郎のパスワード、
とある人物をTDN表記にしたもの
って何だかわかります? >>822
俺もわからなかったけど、コードを直接書き換えればいいから探すのやめたw >>819
以前v4l2での話を報告していたものです。
緑回避のためのffmpegは自前コンパイルしたもの前提です。
すごくいい加減なパラメータだとはおもいますが。
<ハードウェアエンコード処理のみ?>
"cmd": "%FFMPEG% -re -dual_mono_mode main -sn -threads 0 -i pipe:0 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -ab 192k -ac 2 -c:v h264_v4l2m2m 4000k -level 40 -aspect 16:9 -q 21 -flags +loop-global_header %OUTPUT%"
<ソフトウェアのスケール処理を入れる場合>
"cmd": "%FFMPEG% -re -dual_mono_mode main -sn -threads 0 -i pipe:0 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -ab 192k -ac 2 -c:v h264_v4l2m2m -vf scale=1024:576 -b:v 4000k -level 40 -aspect 16:9 -q 21 -flags +loop-global_header %OUTPUT%"
こんなかんじです。 >824 つづきです
これは必須なのかどうかわかりませんが、userlandのライブラリは入れてあります。
(入るのは32bitのライブラリぽいので意味ないかも?)
なお、現状でも依然として問題なのが
「 -vf scale=1024:576」
このscaleパラメータの有無です。
(上記2つの例の違いがこれです)
放送波が1440x1080の場合は、なんらかの方法でscaleしないと、左右方向につぶれます。
ですがscale処理はソフトウェア処理となるようなので、
上記のようにある程度解像度を下げないと追いつかないです。
(vaapiだったらvaapi_scale=とかがつかえる)
横1920は速度が0.7xぐらいまで落ちます。横1280もきついかんじがしています。
あとこれは環境要因かもですが長時間再生があまり安定していない可能性が有ります。
(いずれも個人の感想です)
もう出力先は16:9固定でもいいから、>771のかたのような方法があればいいんですが・・・
そちらの例にもあるようにエンコーダに固有の処理っぽいので、
私には対処方法がわかりませんでした。 (824投稿したものです)
>> 820
おっしゃるとおりRaspberryPiOSはまだ64bit版が正式版になっておらず、
px4_drvのコンパイルに必要な環境が私の技量では整えられないので、
私はubuntu-20.04の64bit版をつかっています。
(最近ようやくubuntuでもSSDからのダイレクトブートのしかたの情報を
見つけることができてたすかった) 824〜826 前レスにリンクしたつもりがキレまくったすみません。 >>825
> あとこれは環境要因かもですが長時間再生があまり安定していない可能性が有ります。
レス後に久しぶりに動かしてみて再生を継続してみてるけど、なんか今日は安定してるな...
CPU使用率は50%ぐらいで推移
(ffmpeg自信は1core分ぐらいほぼ使いきってるかんじ) >>824
すみません、どうもv4l2をつかった場合に、
微妙に正しくないhlsファイルができあがるみたいです。
再生開始してそのまま見ている分にはいいんですが、
hls再生動作させたまま(ffmpegを動かしたまま)一度視聴をやめて、
再度視聴再開をすると、再生がうまくいきません。
llibx264をつかった場合はこうはならないのですが、原因がよくわからない... px-q3pe4を使用し、ネットワーク越しのNASへTSを保存する方法でtryしました。
ご参考までに。
raspberry pi4を使用すると、8番組同時に録画すると処理が追いつかないようで
バッファから溢れてしまいdropの嵐。
色々設定をいじっても3〜4番組までが限界でした。
試しに古いintelのNUC(NUC5PPYH)で同じようにtryしましたところ、
何も設定をいじらずに8番組同時でdrop0。拍子抜けしました。
ローカルへ直接保存では多分大丈夫なのでしょうけれど(試していません)、
多くの番組のネットワーク越しの保存は、raspberry pi4ではちょっと厳しいようです。 px4_drvチューナー+ラズパイ4は何もせずBondriverProxy_LinuxでWinにチューナー投げるだけなら
地デジx4+CSx4まではいけたけど地デジx6+CSx6はダメだった。
ラズパイのオンボLANで流すと30分に1回くらい全チューナードロップしたから
USB-LAN:LUA4-U3-AGTE-BK(AX88179)を使って解決したり、
起動後に挿せばいいんだけどW3PE4を2枚ラズパイに直結するとOS起動しなくなったから
UH-3064BK(USB3.0x1+2.0x3ハブ)噛ませて解決したり、
安定はしたんだけどクセ強いなとは思った。 うちはRasPi4 + USB3.0 SSDの環境でも1番組でdrop出まくり。
片方にチューナー、もう片方でスクランブル解除&保存の2台カスケード構成なら安定した。
USBがかち合うのかも。 Pi4のUSBは電力すぐに不安定なるのと
SSD繋いだ場合にuasに問題抱えてるからな
セルフパワーハブ噛ましておくに限るよ アス比関係でomx調べてた時案外スケール実装できそうだったから
omx使ったスケール処理のビデオフィルター作ったよ
>>771のアスペクト比が崩れる問題のコミットも入れてある
https://github.com/gameboym/FFmpeg.git
n4.3.1ベースにomxってブランチ作ってあるからcloneしてから
git checkout omxしたあとにconfigureしてmakeすればいけるはず
configureのoptionは>>774なんか参考に--enable-omx,--enable-omx-rpiは必須
最新版に当てたい場合はomxの3つのコミット適当にマージやパッチして使ってください
-vf scale_omx指定でscaleとほぼ似た感じで使えるはずだけど
オプションのチェックはあんまりしてないから問題あるかもしれない
ただomxのスケールは入出力に倍数制限があってその対処で手を抜いてて
バッファと解像度で数値が違う状態になるから気になるなら本エンコには使わない方が良いかもしれない
バッファの余分な情報カットするのは作業コスト高くなりそうだからたぶんやらない でもこれ後で気が付いたんだけどomx自体64bitのサポートがなさそうだから
64bit対応してるmmal使ったv4l2_m2mの方が将来性あるから無駄足だったかも
>>236のtmm1/FFmpeg/ならスケールにも対応してるみたいだし
そっちのアス比対応だけ調べていじればよかったかもしれない
まあ今更いっても仕方ないので32bit環境でh264_omx使いたい人なんかはやってみて
omxが使えればコーデック自体はh264_omxじゃなくてもいけるんで
v4l2_m2mとscale_omx組み合わせて使うとかも一応できるよ
ちなみに速度は等倍1.4ぐらいのを720iにソフトスケールだと1下回るぐらいになって
scale_omxだと1.2ぐらいは出てる感じだからライブ関係もいけるはず libarib25に組み込んで直接復号させるパッチが見つかった。
https://pastebin.com/uGpQKQ8n EPGStationで録画済み動画をHLSストリーミング視聴しようとしたのですが、
視聴途中でストリーミングを停止しても、裏で動いているHLS変換が止まってくれません。
どうもconfig.jsonのrecordedHLSに
外部シェルスクリプトを指定するとダメみたいです。
こういう使い方はNGなんでしょうか。 >>842
それはシェルスクリプト側の問題じゃないの? >>842
たぶんepgstation側は子プロセス(シェル)を終了させようとしてるでしょうから、
その動作前提で考えてみるとよいのではないかと思います。 >>841
Ubuntuでビルドするとエラーになるな。
/usr/bin/ld: libarib25.so.0.2.5: undefined reference to `dladdr'
ちゃんとCMakeLists.txtに-ldlオプションも追加されているのになぜだろう?
set(CMAKE_CXX_FLAGS "-Wall -ldl") >>848
最悪、confファイルのアドレス決め打ちにして、dladdrのとこ削除でもいいけど、なんでだろう。 ■ このスレッドは過去ログ倉庫に格納されています