X



ffmpegならこちらへ 4
レス数が1000を超えています。これ以上書き込みはできません。
0881名無しさん@お腹いっぱい。
垢版 |
2020/07/19(日) 09:15:04.76ID:sdyIHVp+0
hevc_nvecのb_ref_modeをeachに指定すると
Each B frame as reference is not supported
ってメッセージが出て出力できないんだけど、eachって使えないのかな
NVEncCだと--bref-mode eachが使えるから、hevc_nvecでも使えておかしくないと思うんだけど
なにか他に指定しなきゃいけないオプションでもあります?

投げたコマンドは↓で、FFMpegのバージョンは4.3
FFMPEG -y -i input.mp4 -c:v hevc_nvenc -bf 3 -b_ref_mode each -an output.mp4
0885名無しさん@お腹いっぱい。
垢版 |
2020/07/19(日) 19:34:15.12ID:rq6kjMIQ0
>>881
一応調べたとこまで。

●3月時点: RTX 2080 SUPER + Game Ready Driver 442.59でも、HEVCで b_ref_mode each がサポートされてないって言われる
https://forums.developer.nvidia.com/t/details-about-nvenc-in-turing/64148/102

●ffmpegの該当エラー処理部
https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/nvenc.c#L425

 → NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODE を調べて、GPUでEACHがサポートされているかを調べている。
   ここで 「EACHはサポートしとらんで」 という結果が返っているためエラーとなっている。
   (-b_ref_mode middle が通るなら、「MIDDLEのみサポートしとるで」 という結果が返っているのだと思う)

 →参考:NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODEの定義
   https://github.com/FFmpeg/nv-codec-headers/blob/master/include/ffnvcodec/nvEncodeAPI.h#L1089

●rigaya氏のNVEncCの場合
https://github.com/rigaya/NVEnc/blob/master/NVEncCore/NVEncCore.cpp#L1567

 →NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODEは調べているが、DISABLEDかどうかを見ているだけ。
   「EACHをサポートしているかどうか」はチェックしていない。

ということで、どうも each については、そもそも現時点で本当に使えるのかどうかよくわからんことになってる。
NVEncCで使えてるように見えても、実はちゃんと使われていない可能性もあるかも?

NVEncC.exe --check-features だと、B ref mode のサポート状況はyes/no表示になってるから、
yesだとしても、eachをサポートしてるのか、middleだけなのかはわからないんだよね。

とりあえず上で聞いた質問の答えを返してもらえるとありがたい。
0886名無しさん@お腹いっぱい。
垢版 |
2020/07/19(日) 20:35:00.25ID:sdyIHVp+0
1660superで、ドライバは446.14(リリース日:2020.5.27)
middleだと普通に行ける
ネット漁って使用例見てもみんなmiddleかdisableなんだよね
その可能性は考えたけど、やっぱNVEncCでもちゃんと使えてるかは不明か〜
0887名無しさん@お腹いっぱい。
垢版 |
2020/07/19(日) 22:50:44.40ID:rq6kjMIQ0
>>886
とりあえずrigaya氏のNVEnc5.11の記事にコメントしといた。

あと、NVEncC.exeで
 --bref-mode each
 --bref-mode middle
 --bref-mode disabled
をやってみて、結果に違いが出るのかどうかを確認してみてもらえるとありがたいかな。
eachでmiddleやdisableと異なる結果が出るなら、とりあえずeachでなにかやってるってことになるだろうし。
0888名無しさん@お腹いっぱい。
垢版 |
2020/07/20(月) 00:44:39.43ID:5oMYCxdy0
middleとeachで結果変わった…
rigaya氏のNVEncだと有効なのかな、それも不思議な話だ

◆投げたコマンド
NVEncC --avhw -i INPUT -c hevc -u quality --vbrhq 0 --vbr-quality 18 -b 3 --bref-mode disable/middle/each -o OUTPUT
0889名無しさん@お腹いっぱい。
垢版 |
2020/07/20(月) 00:59:34.27ID:u+vC8HPJ0
ごめん規制に巻き込まれて結果書き込みづらいが
とにかく若干eachの方が容量増えた
I,P,Bのフレーム数は変わらず
0890名無しさん@お腹いっぱい。
垢版 |
2020/07/20(月) 01:05:25.63ID:sMBTWBL30
>>888
・ffmpegのチェック処理にバグがある
・ドライバのバグで NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODE に戻すべき値を間違っている
 (バグってるのはそこだけで、実パラメータとしてEACHを設定してやればちゃんとEACHとして動く)

といったことが考えられるけど、どうなんだろね。

ffmpegのソースの部分修正と自ビルドができるなら、>>885のエラー処理部のとこで
 ・NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODE の戻り値をログ出力して確認
 ・該当エラー処理をうまいことコメントアウト
してみて、-b_ref_mode each/middle/disabled を比較してみるという手もある。
0891名無しさん@お腹いっぱい。
垢版 |
2020/07/20(月) 03:07:01.44ID:5oMYCxdy0
ごめんその手のスキルは持ち合わせてない

結果のログ載せようとすると弾かれるのか…
何が引っかかるのやら
0894名無しさん@お腹いっぱい。
垢版 |
2020/07/21(火) 00:52:07.66ID:UW4DncKk0
>>881の -b_ref_mode each の件、たぶん原因判明。ffmpegのバグ。
詳細はrigaya氏のブログのNVEnc 5.11の記事のコメント欄を参照。

NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODE は each と middle の両方が
サポートされている場合、1(each) と 2(middle) の論理和をとって 3 を返す模様。

>>885にあるように、今のffmpegの処理は「eachをサポートしてるなら1を返すはずや!」という
チェックになっているので、それを修正する必要がある。

・・・報告ってどうやるんだっけな・・・。
0898名無しさん@お腹いっぱい。
垢版 |
2020/07/21(火) 02:20:57.74ID:UW4DncKk0
>>895
サンキュー。とりあえずチケット登録しといた。
コード修正は誰かにまかせるぜスタイルなので、フォローできる人はよろしく頼む。

  #8809 (hevc_nvenc / b_ref_mode each is not working) ? FFmpeg
  https://trac.ffmpeg.org/ticket/8809

早く直してもらえるといいな。まあ俺Turing持ってないんだけど・・・w
0901名無しさん@お腹いっぱい。
垢版 |
2020/07/21(火) 14:35:33.57ID:y8zEtScE0
>>899
x264/x265で言うところの --b-pyramid みたいなもんじゃないかな?
Bフレームを参照するBフレームを作ることで圧縮効率を上げるみたいな。
(自分の理解が間違ってたら指摘よろ)

NVIDIAのSDKドキュメントの説明だと、
  「パフォーマンスへの影響なしに画質を改善できるので、有効にすることを強く推奨」
とされている。

 https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-video-encoder-api-prog-guide/index.html#b-frames-as-reference

h264_nvenc で使えるのは、-b_ref_mode middle だけ。

hevc_nvenc だと middle だけではなく、(上記バグが修正されれば) each も使えるけど、
そもそもHEVCのBフレームがサポートされたのはTuringからなので、TuringのGPU(無印1650を除く)が必要。
0903名無しさん@お腹いっぱい。
垢版 |
2020/07/21(火) 22:57:12.57ID:hbGpSwkL0
一つの動画ファイルの中で
明るくなったり暗くなったりする動画ファイルがあるのですが
明るさの平均値が一定になるように
ホワイトバランスを設定するような機能ってffmpegにありますか?
 
0907903
垢版 |
2020/07/22(水) 18:45:22.19ID:Fy+7VVut0
>>904
どのコードを使えば良いかお教え願えないでしょうか?
0910名無しさん@お腹いっぱい。
垢版 |
2020/07/26(日) 15:51:21.21ID:gfh2Twnh0
ffmpegOutで、2passってできる?
具体的にはvidstabを使いたいんだが、1passすら始まらずtransformでtrfファイルが見つからないとログがでる

-c:a copy
-c:v libx264
-crf 30
-vf vidstabdetect -an -f null -
-c:a copy
-c:v libx264
-crf 18
-vf vidstabtransform -y

vidstab自体はビルドできてる
detectとtransformでそれぞれプロフィールを分ければエンコできるんだが、できれば一気にやりたい
0911名無しさん@お腹いっぱい。
垢版 |
2020/07/26(日) 16:07:12.41ID:gfh2Twnh0
ごめん、スレ間違えた
取り消します
0912名無しさん@お腹いっぱい。
垢版 |
2020/07/26(日) 17:20:12.55ID:fCzyjOBH0
Hqdn3dでスムージングをかけながら、
動画を静止画として出力したいのですが、
なぜか反映されません。
それ以外の設定は反映されるのですが、
Hqdn3dだけは、画像出力の場合にだけ無効化される仕様なのでしょうか?
0915912
垢版 |
2020/07/29(水) 19:11:01.67ID:+QEfK52S0
どなたかよろしくお願いいたします。

 
0918881
垢版 |
2020/07/30(木) 03:31:42.41ID:rv6AnFpc0
each使えるようになったけど新たな問題が…
FFMPEG -y -i input.mp4 -c:v hevc_nvenc -refs 5 -bf 3 -b_ref_mode each -an output.mp4
↑なら成功するけど
FFMPEG -y -i input.mp4 -c:v hevc_nvenc -refs <6-16> -bf 3 -b_ref_mode each -an output.mp4
のように、refsが6以上になるとエラーが出てエンコードできない
[hevc_nvenc @ 0000029fd8825340] EncodePicture failed!: generic error (20):
Video encoding failed
Conversion failed!

middleだと-refs 16でも行ける
NVEncCだとeach指定でも--refは16まで行ける
0919名無しさん@お腹いっぱい。
垢版 |
2020/07/30(木) 14:27:15.12ID:I+v0iwdb0
>>918

・意味ないかもだけど -refs のかわりに -dpb_size を使ってみた場合はどうなるかな?
  FFMPEG -y -i input.mp4 -c:v hevc_nvenc -dpb_size <6-16> -bf 3 -b_ref_mode each -an output.mp4

・何もわからない可能性もあるけど、差し支えなければ -loglevel debug をつけたログを
 テキストファイルかpastebinあたりで出してみてもらえるとありがたいかな・・・
0920名無しさん@お腹いっぱい。
垢版 |
2020/07/30(木) 14:47:32.07ID:rv6AnFpc0
NVEncCでeach使うとref 5と16の結果が一緒だった。middleは5と16の結果が違った
どうもeachだと上限5なのかな
0921名無しさん@お腹いっぱい。
垢版 |
2020/07/30(木) 21:16:14.68ID:3SzyDS+U0
>912
入力コマンドを書き込んでほしいのと
>画像出力の場合にだけ無効化
の無効化とはどのように確認しましたか。
0922名無しさん@お腹いっぱい。
垢版 |
2020/07/31(金) 02:23:31.32ID:RujOhmlm0
X265のオプションの解説にHEVCの規格上、ferは最大8まで、bフレーム有効で7、b-pyramid有効(NVENCにあるかは知らん)で6になる。エンコードするにはLevel無しのエンコードを許可するオプションが必要
とか何とかあるし、その辺でハードウェア的に対応してないとかそんなんなんじゃない?(適当)
じゃあなんでmiddleはエンコードできんねんって話だけど…
0923名無しさん@お腹いっぱい。
垢版 |
2020/07/31(金) 20:38:20.66ID:H2q7LLT50
>>921
コマンドは
"D:\fmpeg.exe" -ss 0 -y -i "D:\test.mkv" -vf "hqdn3d=500.00,format=yuv420p" -vframes 1 -qscale:v 1 -an -vsync 0 "D:\test2.png"
"D:\fmpeg.exe" -ss 0 -y -i "D:\test.mkv" -vf "hqdn3d=500.00:500.00:0.00:0.00,format=yuv420p" -vframes 1 -qscale:v 1 -an -vsync 0 "D:\test2.png"


こんな感じです。

無効なのは、単に画像がスムージング前と変化無しだからです
0924名無しさん@お腹いっぱい。
垢版 |
2020/07/31(金) 23:02:00.79ID:oJrRErp50
hqdn3dは3次元デノイズなので最初の1フレームだけだとフィルタが効いてない。
よって2フレーム以降ならフィルタの効果がある。
"D:\fmpeg.exe" -ss 0 -y -i "D:\test.mkv" -vf "hqdn3d=500.00,format=yuv420p" -vframes 2 -qscale:v 1 -an -vsync 0 "D:\test2%d.png"
"D:\fmpeg.exe" -ss 0 -y -i "D:\test.mkv" -vf "hqdn3d=500.00:500.00:0.00:0.00,format=yuv420p" -vframes 2 -qscale:v 1 -an -vsync 0 "D:\test2%d.png"
0925名無しさん@お腹いっぱい。
垢版 |
2020/08/01(土) 02:23:34.70ID:3os4bqIM0
複数音声(英日)、複数字幕(英日)、チャプター情報が入ったmp4のdemuxがうまくいかずに詰んでる

ffmpeg.exe -i video.mp4 -map 0:0 -c copy video1.mp4
ffmpeg.exe -i video.mp4 -map 0:2 -c copy video2en.aac
ffmpeg.exe -i video.mp4 -map 0:3 -c copy video3jp.aac
ffmpeg.exe -i video.mp4 -map 0:5 -c copy video.csv
ffmpeg.exe -i video.mp4 -map 0:6 -c copy videoen.srt
ffmpeg.exe -i video.mp4 -map 0:7 -c copy videojp.srt
0926名無しさん@お腹いっぱい。
垢版 |
2020/08/01(土) 02:34:07.45ID:DvoqeN4P0
[srt @ 044e8ca0] SRT supports only a single subtitles stream.

Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

Stream map '0:7' matches no streams.


ダメなのは字幕とチャプター
http://imgur.com/SQ6Wo2X.jpg
map番号は合ってると思うのだが..
0930名無しさん@お腹いっぱい。
垢版 |
2020/08/01(土) 13:14:24.77ID:0bF8Zvaj0
>>924

確かに、一フレームだけ出力しようとするとスムージングはかからないのですが
連番ファイルとして出力するとかかるようです。
hqdn3dは3次元フィルターですが、4つあるパラメータのうち、後ろの二つは時間方向に対するサイズで
前の二つが空間方向に対するサイズなので、前の二つだけは機能してくれても良いと思うのですが・

今やりたいことは、スムージングのパラメータを変えながら、スムージングのかかり具合を調べるために
ピンポイントであるフレームだけを画像として保存したいのですが、
どうすれば良いですか?

最初からスムージングだけ処理していって、
あるフレームだけ保存するようなことはできないでしょうか?
0932名無しさん@お腹いっぱい。
垢版 |
2020/08/01(土) 20:47:14.65ID:oHwVoXgP0
trimフィルタを使ってピンポイントであるフレームだけフィルタを当てる。
同じフレームをコピーしてhqdn3dを使う。2番目の出力にhqdn3dの効果がある。
"D:\fmpeg.exe" -ss 0 -y -i "D:\test.mkv" -vf "trim=start_frame=300:end_frame=301,loop=1:32767:0,hqdn3d=500.00,format=yuv420p" -vframes 2 -qscale:v 1 -an -vsync 0 "D:\test2%d.png"
前後フレームでhqdn3dを使う。2番目の出力にhqdn3dの効果がある。
"D:\fmpeg.exe" -ss 0 -y -i "D:\test.mkv" -vf "trim=start_frame=300:end_frame=302,hqdn3d=500.00,format=yuv420p" -vframes 2 -qscale:v 1 -an -vsync 0 "D:\test2%d.png"
0933名無しさん@お腹いっぱい。
垢版 |
2020/08/01(土) 22:33:22.89ID:PeoZKIHv0
>>925
mp4のチャプタをxmlファイルなんかにエクスポートするにはどうしたらいいんだ?
メタデータから読み出さないとダメみたいだけど、
チャプタを付加する方法は見つかるのに、抽出する方法が見つからない。
0935名無しさん@お腹いっぱい。
垢版 |
2020/08/01(土) 23:31:14.63ID:PeoZKIHv0
>>934
レスありがと
でも、この形式だと、そのままでは他で流用できないねぇ
汎用性のあるチャプターファイルの形式ってなんだろう?

Neroチャプター形式(TXT)
Appleチャプター形式(TXT)
BIFS/OD形式(よくわからん)
ffmpegMetadata形式(INI)
matroskachapters形式(XML)

とりあえず、mpvのスクリプト(createchapter.lua)で簡単に作成できるmatroskachapters(xml)がmkvtoolnixに対応してるので、
これを使ってチャプタ付きmkvを作成、ffmpegでmp4に変換、という手順でやってる。
0937名無しさん@お腹いっぱい。
垢版 |
2020/08/10(月) 01:37:04.74ID:OljsJD7n0
監視カメラのmp4データ(7000kbps、30フレーム)を、HLS形式(m3u8形式)にffmegで変換できましたが、
その際、ultrafast でも変換するのに再生時間と同じ程度の時間がかかります。

変換後のサイズは気にしないので圧縮に時間かかるのだったら圧縮したくないんですが、
時短のためのなにか良いオプションあるでしょうか。

現在は次のコマンドラインで変換しています。

ffmpeg -i 変換前.mp4 -vcodec libx264 -preset ultrafast -start_number 0 -hls_time 2 -hls_list_size 0 -f hls 変換後.m3u8

使用しているCPUは2GHzくらいのもの2コアです。
変換中は100%使用率になります。
0940名無しさん@お腹いっぱい。
垢版 |
2020/08/10(月) 08:16:05.83ID:Dt5KRjf/0
監視カメラの映像で7000kbpsもいるのかどうか知らんけど単純にビットレートを落とせばいんじゃね
7000kbpsじゃ時間かかって当たり前なんだから使用上問題が出ないレベルまで落とすしか無いでしょ
0942名無しさん@お腹いっぱい。
垢版 |
2020/08/10(月) 09:59:47.38ID:OljsJD7n0
>>940
レスありがとうございます。
元データの品質を落とすことも考慮したいと思います。

>>941
m3u8とは別に、たくさんのファイルができました。
これらのファイルが細切れになった実際の映像データです。


元データの品質のまま、たんに細切れにするだけなら、
処理に時間がかからなさそうに思うんですが、
そのようなオプションはあるでしょうか。

現在使用しているのは、>>937のとおりです。

もしなければ、元データの品質を予め落とすようにするしかありません。
0946名無しさん@お腹いっぱい。
垢版 |
2020/08/10(月) 12:41:15.76ID:cI/ydpko0
2GHz2コアだったら4Ghz10コアにするだけでめっちゃ早くなって解決って気がするけど
18とか32コアからアップグレードとかだとコスパ悪くなるけど
0948名無しさん@お腹いっぱい。
垢版 |
2020/08/10(月) 22:56:09.51ID:OljsJD7n0
>>944 >>945
レスありがとうございました!!

いけました。高速で変換できました!
こうしたかったんです。


>>946 >>947
2コアは心もとないので、Raspberry pi 4 8GB(4コア) を使うことにしました。
上の変換は、copyだけど、スーッといけました。
外部HDDディスクをusb3.0で接続、マウントしています。

>>943
nginxとイントラネットで、自分用に監視カメラの映像をHLS配信します。


皆様、どうもありがとうございました。
がんばります。
0949名無しさん@お腹いっぱい。
垢版 |
2020/08/13(木) 21:47:25.31ID:CFOAI0KV0
テストで組んだリストリーミング環境で、ffmpegがどうしても数10分後に停止してしまいます。(1)
あと、視聴ソフトウェアで確認できる映像ではリアルタイムとの遅延が10秒程度ありいつまでもその差が埋まりません。(2)

[camera]→rtsp→[PC1 / ffmpeg]→rtmp→[PC2 / nginx]→視聴ソフトウェア

PC1のffmpegは次のようにしています。
上流のcameraからrtspでストリームを掴んで、変換後に、下流のnginxにrtmpで流しています。
ffmpeg -i rtsp://user:pass@192.168.1.2:554/h264/stream -c h264 -an -r 15 -s 720x406 -b:v 512k -f flv rtmp://192.168.12.15/live/cam1

PC2のnginxのrtmp設定は次のようにしています。

rtmp {
server {
listen 1935;
access_log /var/log/nginx/rtmp_access.log;

application live {

live on;

}
0950名無しさん@お腹いっぱい。
垢版 |
2020/08/13(木) 21:47:44.30ID:CFOAI0KV0
最下流の視聴ソフトウェアVLCでrtmpでnginxに接続して、cameraの映像と音声を数10分間は受信できました。
ところが、しばらくすると、映像が止まってしまいます。音声のみ聞こえます。再接続しようとしても駄目です。

このとき、ffmpegの最初にある項目のframeカウントが停止してしまっています。
frame=10396 fps= 14 q=31.0 size= 43611kB time=00:11:31.26 bitrate= 516.8kbits/s dup=0 drop=10392 speed=
それ以外の、最後の項目のspeedの数値は動いているのでffmpegがフリーズしているわけではないと思います。


ffmpegを再起動してから、視聴ソフトでnginxに再接続すると再生できますが、また同じように映像は停止します。

(1)(2)について何か設定を工夫する必要があると思うのですが、
どのように設定すればよいのでしょうか。
0951名無しさん@お腹いっぱい。
垢版 |
2020/08/13(木) 21:52:39.23ID:CFOAI0KV0
>>949
すみません、ffmpegのコマンドはこっちでした。

ffmpeg -i rtsp://user:pass@192.168.1.2:554/h264/stream -vcodec copy -c:a aac -f flv rtmp://192.168.12.15/live/cam1
0953名無しさん@お腹いっぱい。
垢版 |
2020/08/14(金) 11:14:42.41ID:VrGtMuee0
>>949
自己解決しました。

(1)
-rtsp_transport tcp -stimeout 10000000 をつけるとffmpegが止まらなくなりました。
安定して動作しています。
tcpが有効に作用したと思います。

(2)
ライブ映像の遅れは、早送りすると追いつくことができました。
0956名無しさん@お腹いっぱい。
垢版 |
2020/08/14(金) 22:48:56.90ID:VrGtMuee0
>>955
>>937はわたしです。その節はお世話になりありがとうございます。

>>954
レスありがとうございます。

rtmpではなく、今HLSライブストリーミングテストしています、
video.jsの最新のものでは、HLSライブのものでも巻き戻しもできるので便利です。
0957名無しさん@お腹いっぱい。
垢版 |
2020/08/14(金) 22:54:45.10ID:VrGtMuee0
>>956
このvideojsのライブ巻き戻し再生に関して、
何か設定が悪いのか、巻き戻し、早送りの反応がとても悪い。
30秒以上待たされることもあります。
なにが悪いんだろう。tsファイルを検索するnginx側だろうか?

カウント0から再生とライブ再生に戻すのは早いんですけどね。

もうしばらくググりながら悩む必要がありそう。
0958名無しさん@お腹いっぱい。
垢版 |
2020/08/14(金) 23:20:05.03ID:3DNoaat90
>>956
もうHLSの試行したの!?驚き
動きも適応も早くて尊敬します

ライブラリvideo.jsには詳しくなくて力になれない……惜しい
0959名無しさん@お腹いっぱい。
垢版 |
2020/08/15(土) 13:43:44.65ID:lFRQ78oW0
地デジtsから副音声を抽出したい
しかし

Program 1040
Stream #0:2[0x112]: Audio: aac

Program 1041
Stream #0:2[0x112]: Audio: aac

と、まるで同じ
どうやって副音声側1041の0:2を指定する記述をすればよろしいのでしょうか。。。

-map 0:2
では当然のごとく1040側の主音声が抽出できるだけ。。。
0961名無しさん@お腹いっぱい。
垢版 |
2020/08/15(土) 14:10:03.23ID:sRgeJH1o0
検索すると-dual_mono_modeで指定するみたいな記事があるけどドキュメントにそんなオプションないよね…
0964名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 19:54:33.34ID:nNgrTpHl0
FFmpegを使って、輝度値の倍率って設定できますか?
例えば、赤色の輝度値が1.2倍、青色が0.8倍、緑も0.8倍みたいな設定をしたいのですが、
brightnessで輝度値は設定できるのですが、
これは倍率ではなく、オフセットのため、使うことができません。

C#とかだと、輝度値の倍率とオフセットを別で設定できるのですが
FFmpegでもできないでしょうか?
0965名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 20:41:57.08ID:SDeDnwOS0
Program 3104
Metadata:
service_name : ?|?A?
service_provider:
Stream #0:1[0x111]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, top first), 1440x1080 [SAR4:3 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 20000000/0/0 buffer size: 9781248 vbv_delay: N/A
Stream #0:2[0x112]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 186 kb/s
Stream #0:3[0x113]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 190 kb/s
Stream #0:4[0x116]: Subtitle: arib_caption (Profile A) ([6][0][0][0] / 0x0006)
Stream #0:5[0x117]: Data: bin_data ([6][0][0][0] / 0x0006)
Program 3105
Metadata:
service_name : ?|?A?
service_provider:
Program 3106
Metadata:
service_name : ?|?A?
service_provider:
Program 3488
Metadata:
service_name : ?|?A?
service_provider:
Program 3108
Metadata:
service_name : ?|?A?NW;~
service_provider:
No Program
Stream #0:0[0x12]: Data: epg
Unsupported codec with id 98306 for input stream 0
Unsupported codec with id 96272 for input stream 4
Unsupported codec with id 100359 for input stream 5
0967名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 21:03:35.40ID:Tx8kWVMc0
3、4年前にコンパイルしたffmpeg(3.4)使ってたけど、そろそろAV1に対応させようかと思って
久しぶりにコンパイルに挑戦したらつまずいた。ちなMac(10.14)。
3.4の./configureオプションはこんな感じ↓

./configure --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfdk-aac --enable-libvorbis --enable-libopus --enable-libmp3lame --disable-ffplay --disable-ffprobe --disable-ffserver --enable-small

『pkg-config』オプション
./configure --prefix=/usr --with-pc-path=/usr/local/lib/pkgconfig --with-internal-glib

『libx264』オプション
./configure --prefix=/usr/local --enable-static

『libx265』オプション
cd x265path/build/linux
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -DENABLE_SHARED=NO ../../source/

『libvpx』オプション
./configure --prefix=/usr/local --disable-shared --enable-static --disable-unit-tests

『libvorbis』オプション
./configure --prefix=/usr/local --with-ogg-libraries=/usr/local/lib --with-ogg-includes=/usr/local/include --disable-shared

『上記以外のコーデックとyasm-1.3.0、nasm-2.15.03』オプション
./configure --prefix=/usr/local --disable-shared
0968名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 21:09:59.58ID:Tx8kWVMc0
>>967
まずlibaomとlibrav1eがコンパイルできん。仕方がわからん。
oggをコンパイルして次にvorbisコンパイルしたらエラーが出よる。
libaomとlibrav1eは諦めて本体コンパイルしたらコーデック無いって出よる。
それから--disable-ffserverってオプション無いって。これは外せばいいんだろうけど。
0969名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 21:13:28.29ID:Tx8kWVMc0
>>968
libx265は

cd x265path/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/share/cmake-3.18 -DENABLE_SHARED=off -DENABLE_NASM=on ../aom

ってすればできた。あとはわからん。エロい人教えて。
0970名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 21:22:28.89ID:Tx8kWVMc0
>>969
下の間違い。

cd x265path/build/linux
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/share/cmake-3.18 -DENABLE_SHARED=NO ../../source/

cmake-3.18もコンパイルしてインストールした。
0972名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 22:18:49.54ID:sG1wc5El0
なんでコンパイル方法をテンプレにまとめてないわけ?
試行錯誤しなくても説明どおりにすればサルでもできるような。
まず本家からソースコードしか配布されてないってとこがffmpegの敷居を高くしてるんだよ。
5ch・2chにまとめられてればありがたい。ググって出てくるのはわかりにくいんだよ。
初心者はパスの入力なんかでもつまずく。AVファンがパソコンに詳しいとは限らないから。
WinとMac、それぞれのビルド方法をだれかテンプレ化してくれ。サルでもできるようなやつな。
0974名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 22:30:21.98ID:sG1wc5El0
>>971
その公式のコンパイルガイド見ただけでできるような初心者は
一人もいない。何日も試行錯誤しないといけない。
よそがビルドしたバイナリ版はいらんのがいっぱい入ってるし
必要なlibfdk-aacが入ってない。第一怪しい←ここ重要
よそが配布したhand brakeにマルウェア仕込まれてたことあっただろ。
やはり自分でソースコードからコンパイルしたい。
0975名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 22:33:38.18ID:nNgrTpHl0
>>966
LUTフィルターを調べてみましたが
1Dとか3Dとかあっていまいちよく分かりませんでした
コードを見せていただけないでしょうか?
0976名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 22:34:34.36ID:SDeDnwOS0
みんなもビルドして使ってね
という趣旨じゃないからな
ソースコード開示義務があるから自力でビルドすることも可能というだけで
レシピすら無い夕食材料セットみたいなもん
0977名無しさん@お腹いっぱい。
垢版 |
2020/08/16(日) 22:44:17.55ID:xu73v8LW0
ネタにマジレスするけどコンパイルするならDockerとか使ったほうが楽だぞ
Linux以外のバイナリについては知らん
0978名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 00:19:16.63ID:XeOA6k6+0
ネタではない。見ればだいたいわかるだろ。
MacにはHomebrewあるけど使いたくない。
コンパイルすりゃしまいじゃん。

>ソースコード開示義務があるから
>>976
そんな義務あるんか。知らんかったわ。
ソースコード開示されてなかったらvlcとかChromeとかに組み込めないけど
そんな義務あったんか。

>>973
だからやり方さえ詳しく書いてあればあとはコピペするだけだからサルでもできるやん。
0979名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 00:32:11.62ID:FEiKD+L30
ffmpegのバージョン、ライブラリのバージョンでやり方が変わるからだめなんだよ
すぐ使えなくなる
0980名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 00:41:16.89ID:XeOA6k6+0
>>979
そうみたいね。わいも前は試行錯誤の末にできた方法でやったら
今回はダメだった。
だから5ch・2chのこのスレだったらタイムリーに更新できるじゃん。
このスレに来れば常に確実な方法がわかる、って感じにしようず。
0984名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 21:11:14.94ID:tUgUnE3P0
Winだけど、ffmpegのビルド方法まとめてほしいよね
ビルドスクリプト使ったらエラーでビルドできなかった(>>983とは別物)
0985名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 21:22:41.28ID:iNbka2BJ0
>>983
スクリプトは便利なんだけどね
fdk-aacやopusといったライブラリを追加で入れようとすると途端に融通が利かなくなって・・・
0986名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 22:07:26.54ID:0vhyggWz0
というかビルド作業って中途半端に抽象化・カプセル化されてて、皆何となく使えちゃってる気がする
その弊害として実際に踏まれてる手順が分からないし、他の環境・対象向けに応用するやり方も分からなくなってる
0987名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 22:07:52.73ID:0vhyggWz0
パッケージ管理ツールに頼らず自前でビルドするこの際、gitとかGNU makeみたいな役割が単純明快な基本的ツールでのビルドの汎用手法纏めなきゃなのか……
0989名無しさん@お腹いっぱい。
垢版 |
2020/08/17(月) 23:23:37.29ID:0vhyggWz0
>>988
多分何も言わなかったらmakeと言えばGNU makeだと思う
あんま詳しくないから拾ってきたもの

・GNU make (UNIX系、Windows)
・BSD make (UNIX系)
・Schily make
・nmake / Microsoft Program Maintenance Utility (Windows)
・Borland make (Windows)
・Solaris make (Solaris)
0992980
垢版 |
2020/08/17(月) 23:55:07.81ID:3LjqniNC0
>>981
一応ffmpeg-4.3.1でコンパイルできた。libaomとlibrav1eは諦めた。
libaomは実時間の100倍かかるなんて記述もあるし、まだいいかなと。

ちなみにワイの環境ではvp9は実時間の15倍くらい。最初は実時間の8倍くらいの
速度でエンコードするんだけど、ものの数分でサーマルスロットリンクが発生して
速度が落ちる。iMacの性能は本当に低い。今3年前のiMac使ってるけど、9年前の
iMacと比べて速度はほぼいっしょ。変わったのは古いのは本体の一部が火傷する
くらいに熱くなってたけど今のはほんのり温かくなる程度なとこぐらい。
古いのでエンコしまくってたらすぐつぶれた。新しいのはそういうのはないだろう。
たぶんcpuが速度落とすより前にMacがリミッターかけてるんだと思う。
つぶれないように。でも最近はワイほとんどエンコしてない。それはさておき。

libaomとlibrav1e以外は、前と同じだけ全部入れてコンパイルできた。
これで前と同じ環境、プラスAV1でエンコはできないけれどAV1の「認識」はできる
ffmpegバイナリを手に入れることができた。おおむね満足してる。

Mac使ってる人でサルでもわかるように今回のビルド方法まとめてほしい人いる?
ただしx265とliboggとlibvorbisは最新のではなく以前ビルドしたときと同じ
古いバージョンを使ってる。それだとうまくいった。
またx264も古いバージョンのを使ってる。以前ビルドした時、当時の最新
バージョンは設定どおりのビットレートでエンコできないバグがあったから
バグのない古いバージョンでビルドしたんだけど、今回もそれを使ってビルドした。
最新のはそのバグは解消されてると思うけど、検証すんのめんどくさい、
てかできない。まあこれで問題なく使えるんならいいでしょってことで。
以上を了解できるならまとめてもいいよ。
0993名無しさん@お腹いっぱい。
垢版 |
2020/08/18(火) 06:23:46.44ID:mHCFhUSS0
方法そのまま教えるのは魚をあげるのと同じだからなあ
そもそもmakeとは、から始まって、
素直にビルドできない原因と解決方法を個別に説明してくれる方が有り難い
0994名無しさん@お腹いっぱい。
垢版 |
2020/08/18(火) 07:57:59.50ID:AM/qOxOj0
>>978
やり方書いてあっても難しい
ライブラリ群の依存関係とか、ライブラリのバージョンが変わったらビルドエラー出たりとかで
それを一つ一つ潰していってやっとビルドできる。 それで安心してたら次のリビジョンアップで
またビルドできなくなったりと苦難の連続だよ
0996名無しさん@お腹いっぱい。
垢版 |
2020/08/18(火) 08:29:58.58ID:yR2+k7Pc0
前にビルドしたけどx265とx264がマルチコアに対応させれられなくて諦めたんだけど
そのへんうまくいってる?
0997名無しさん@お腹いっぱい。
垢版 |
2020/08/18(火) 11:34:26.70ID:Z3eCd2WC0
./configure
make all
make install
make clean
1000名無しさん@お腹いっぱい。
垢版 |
2020/08/18(火) 13:09:15.39ID:b+U/zleH0
O2
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 485日 11時間 57分 46秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況