ARMなjoin_logo_scpの環境の導入について。実際に使用したソースファイル群とエラー集

ARMなLinuxにおけるjoin_logo_scpの導入については別のページで紹介しているのですが、コメントにてエラーが出たという旨の報告を受けたのでやはりバージョンの不一致などによるエラーが考えられるのでひとまず当時私が使用したソースファイルをアップロードしておきます。

また後続の方が同じようなエラーにあたったときのためにコメントを改変させていただいたり、一部抜粋のような形で公開させていただく場合がございます。ご了承ください。

一応ですが、以下がJLSの導入についての説明記事になっています。以下の記事には私が躓いた場所やエラーが出た場所については書いています。

あらかじめ注意事項などをお断りしておきます。

あくまで私の環境でインストールできたものになるので、他の環境のUbuntuやRaspberry Pi OS 64bit版については実際にできるかは不明です。

また導入の記事でも触れてはいるのですが、私はOrange Pi3にもインストールしていますが、サポートがかなり貧弱なSBCでライブラリ関係が滅茶苦茶だったりaptで拾えるのもバグまみれと凄惨たる状況ですが導入から実行まで問題なく行えているので、基本的には頑張れば導入できることがほとんどかと思います。

またOrange Pi3は64bitのUbuntu Server bionicベースのArmbian bionicで動作を確認しているので64bit環境でも問題なく動作は行えるはずです。

ソースファイル

こちらは改変を加えていないソースファイルになります。一応ざっと見た感じ権利関係や改変を加えない二次配布については問題なかったはずですがもし問題があるものがあればお問い合わせいただければ削除いたします。

Google Drive

https://drive.google.com/file/d/1E0WxaI4m_nGTwHvkkzlil19uW9WlmZ4F/view?usp=sharing

パスワードなしzipファイルにしています。また、中身については以下のものが含まれています。バージョンについては触れませんが私の環境で導入できたバージョンになります。

  • AviSynthPlus
  • chapter_exe arm対応版
  • JoinLogoScpTrialSetLinux
  • delogo-AviSynthPlus-Linux
  • fdk-aac
  • FFmpeg
  • l-smash
  • L-SMASH-Works

必要に応じて使っていただければいいと思いますが、基本的にはJLSの本体の部分は更新や修正を作者様がしていただいているので最新のものを使うのがいいかと思います。作者様のGitHubにもARM環境にインストールをするドキュメントがありますが、私が執筆したものになるので、くれぐれもこの導入についてはGitHubで質問を作者様に行わないでください。このサイトか、私のGitHubに対して質問を行って下さい。JLS導入後のツール固有の不具合についてのみ作者様に質問を行うようにしてください。

以下、コメントで寄せられたエラーについてまとめておきます。私が導入時に躓いたことは導入のページに途中で紹介はできる限りしていますのでそちらを参照してください。もしコメントの引用に問題があれば早急に削除いたします。

症例1

コメントで寄せられたエラーになります。L-SMASH-Worksが導入の難所なのですが、この部分のninjaを実行した際に以下のようなエラーが出たとのことです。

[1/2] Compiling C object 'lsmashsource@sha/.._common_lwindex.c.o'.
FAILED: lsmashsource@sha/.._common_lwindex.c.o
gcc -Ilsmashsource@sha -I. -I.. -I/usr/local/include/avisynth -I/usr/local/include -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -pipe -Wall -Winvalid-pch -std=c99 -O3 -Wno-sign-compare -DXXH_INLINE_ALL -D_FILE_OFFSET_BITS=64 -mfpu=neon -fPIC -MD -MQ 'lsmashsource@sha/.._common_lwindex.c.o' -MF 'lsmashsource@sha/.._common_lwindex.c.o.d' -o 'lsmashsource@sha/.._common_lwindex.c.o' -c ../../common/lwindex.c
../../common/lwindex.c: In function ‘create_index’:
../../common/lwindex.c:2553:78: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
if( adhp->dv_in_avi == 1 && format_ctx->streams[ adhp->stream_index ]->nb_index_entries == 0 )
^~
../../common/lwindex.c:2601:58: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
temp = (AVIndexEntry *)av_realloc( stream->index_entries, allocated_size );
^~
../../common/lwindex.c:2617:27: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
stream->index_entries = temp;
^~
../../common/lwindex.c:2618:27: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries_allocated_size’
stream->index_entries_allocated_size = allocated_size;
^~
../../common/lwindex.c:2619:27: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
stream->nb_index_entries = i;
^~
../../common/lwindex.c:2625:58: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
temp = (AVIndexEntry *)av_realloc( stream->index_entries, allocated_size );
^~
../../common/lwindex.c:2642:27: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
stream->index_entries = temp;
^~
../../common/lwindex.c:2643:27: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries_allocated_size’
stream->index_entries_allocated_size = allocated_size;
^~
../../common/lwindex.c:2644:27: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
stream->nb_index_entries = i;
^~
../../common/lwindex.c:2650:34: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
av_freep( &stream->index_entries );
^~
../../common/lwindex.c:2651:23: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries_allocated_size’
stream->index_entries_allocated_size = 0;
^~
../../common/lwindex.c:2652:23: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
stream->nb_index_entries = 0;
^~
../../common/lwindex.c:2661:108: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
print_index( index, "\n", stream_index, AVMEDIA_TYPE_VIDEO, stream->nb_index_entries );
^~
../../common/lwindex.c:2663:43: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
for( int i = 0; i nb_index_entries; i++ )
^~
../../common/lwindex.c:2664:57: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
write_av_index_entry( index, &stream->index_entries[i] );
^~
../../common/lwindex.c:2665:28: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
else if( stream->nb_index_entries > 0 )
^~
../../common/lwindex.c:2667:72: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries_allocated_size’
vdhp->index_entries = (AVIndexEntry *)av_malloc( stream->index_entries_allocated_size );
^~
../../common/lwindex.c:2670:43: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
for( int i = 0; i nb_index_entries; i++ )
^~
../../common/lwindex.c:2672:47: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
AVIndexEntry *ie = &stream->index_entries[i];
^~
../../common/lwindex.c:2676:51: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
vdhp->index_entries_count = stream->nb_index_entries;
^~
../../common/lwindex.c:2682:108: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
print_index( index, "\n", stream_index, AVMEDIA_TYPE_AUDIO, stream->nb_index_entries );
^~
../../common/lwindex.c:2684:43: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
for( int i = 0; i nb_index_entries; i++ )
^~
../../common/lwindex.c:2685:57: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
write_av_index_entry( index, &stream->index_entries[i] );
^~
../../common/lwindex.c:2686:28: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
else if( stream->nb_index_entries > 0 )
^~
../../common/lwindex.c:2690:72: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries_allocated_size’
adhp->index_entries = (AVIndexEntry *)av_malloc( stream->index_entries_allocated_size );
^~
../../common/lwindex.c:2693:43: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
for( int i = 0; i nb_index_entries; i++ )
^~
../../common/lwindex.c:2695:47: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
AVIndexEntry *ie = &stream->index_entries[i];
^~
../../common/lwindex.c:2699:51: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
adhp->index_entries_count = stream->nb_index_entries;
^~
../../common/lwindex.c: In function ‘lwlibav_import_av_index_entry’:
../../common/lwindex.c:3457:24: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
av_free( stream->index_entries );
^~
../../common/lwindex.c:3458:15: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries’
stream->index_entries = dhp->index_entries;
^~
../../common/lwindex.c:3459:15: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘nb_index_entries’
stream->nb_index_entries = dhp->index_entries_count;
^~
../../common/lwindex.c:3460:15: error: ‘AVStream’ {aka ‘struct AVStream’} has no member named ‘index_entries_allocated_size’
stream->index_entries_allocated_size = dhp->index_entries_count * sizeof(AVIndexEntry);
^~
ninja: build stopped: subcommand failed.

AVStream関係のエラーみたいですが、調べてみるとライブラリ関係のエラーみたいです。解決策がわかれば追記します。

追記:やはりライブラリの関係だったのか、私が導入できたソースファイル群なら解決できたとのことです。このエラーが出たらここで掲載しているソースファイルを用いてビルドしてみてください。

3件のコメント

  1. 対応ありがとうございます。
    いただいたソースを利用して、
    l-smash AviSynthPlus ffmpeg を再インストールしなおしたら、
    L-SMASH-Worksのninjaが通りました。
    ffmpegで何かが足りないのかとおもっていたのですが、
    差分まではしらべることができていなかったので、
    これでとりあえずは対応はすることができることとなりました。
    3つの連携のどこに問題があったかのかとみてみたいと思いますが、
    とりあえずご報告させていただきます

    1. すいません、記事を作ってコメントを返信していたのですが、この間に解決できたようですね。一応私なりの考えを返信で記しましたのでよろしければ参照してください。
      また、報告のほどありがとうございました。また躓いたらときは、書き込んでいただければわかる範囲で協力させていただきます。

マゲ へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。