[過去ログ] ffmpegならこちらへ 7 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
73: 2022/11/28(月)01:02 ID:VB5HSDAy0(1) AAS
>>72
このスレの大半は無視と罵倒とマウンティングで出来ています
x264 / hevc /VP8の話題は原則禁止です
mp4とだけ書くのも禁止です
ffmpeg -i foo.mp4などと実行してVideo部分のcodecを確認してから質問してください
74(1): 2022/12/03(土)08:16 ID:pWoUq+ys0(1) AAS
>>72
Yes, it is possible to add a timecode to each chapter in an mp4 container.
To do this, you can use the -timecode option in FFmpeg. This option allows you to specify a timecode for each chapter in the mp4 container.
Here is an example command that you can use to add timecodes to each chapter in an mp4 container:
ffmpeg -i input.mp4 -map 0 -c copy -metadata:s:t:0 timecode="00:00:00:00" -timecode_frame_start 0 output.mp4
In this command, the -timecode option is used to specify a timecode for each chapter in the mp4 container. The timecode is specified in the format HH:MM:SS:FF, where HH represents the hours, MM represents the minutes, SS represents the seconds, and FF represents the frames.
In this example, the timecode for each chapter is set to 00:00:00:00, which represents the start of the video. You can adjust this timecode as needed to specify different timecodes for each chapter.
省1
75(1): 2022/12/03(土)12:22 ID:jcglrjSt0(1/3) AAS
ところで、mp4(m4a含む)でチャプターを付ける時
一番お気楽な方法ってなんなんだろう
定番では Drax、
個人的にわかりやすいのは mkvtoolnixでMKV出力→ffmpegでコンテナ変換だと思うけど、
前者はD'nDができないし、後者はVBRフラグが引き継がれない(ffmpegのいわば仕様)
76(2): 2022/12/03(土)15:24 ID:tD70AyOp0(1/2) AAS
気楽の定義がわからんけど、CUIのツールを組み合わせて
テキストベースでpythonとか使いながらやるのが一番楽な筈
77: 2022/12/03(土)15:51 ID:ZLRdDl1d0(1) AAS
最近のffmpeg(snapshot2022-12-02)って、昔と比べてエンコード速度が速くなっている代わり
にVAAPI(Linuxです)使用時でもCPUを積極的に使用するように仕様が変わったんですか?
昔と言っても(2022-02-02)のsnapshotなんですが、Core i7 7700Kのマシンで、h264_vaapiで地上波m2ts
の変換で、6倍速ぐらいの速度でCPU周波数はIntel P-stateのpowersaveで1.1GHzぐらいで、task managerの使用率も1%ぐらいだったんですが、
2022-12-02版だと13倍速でる代わりに同じくpowersaveで3.2GHzぐらい食って、task managerの使用率も8%ぐらいでした。
何か変更でもアナウンスされてましたっけ?
78(1): 75 2022/12/03(土)16:48 ID:jcglrjSt0(2/3) AAS
>>76
要するに、他のメタデータを考えることなく、
チャプタの時間を指定するだけ(チャプタ名は数字順)で済むような方法という想定だったんだけど、
ググってみたら、pythonのヘルパースクリプトがあるみたいだね
pythonは使えるので、参考にして自分で書いちゃったほうが楽なのかな
mpvプレーヤーには、該当箇所でキーを押してmkvチャプタ(mkvmergeで使われるxml形式)を出力するというプラグインがあるんだけど、
同様にffmpeg用(FFMETADATA)ファイルを出力するようなものがあるといいと思った
やはり、映像や音声を確認しながらその場でチャプタを指定できると便利だ
79(1): 2022/12/03(土)17:14 ID:tD70AyOp0(2/2) AAS
普段は再生にmpc-hcを使ってて、
ctrl-Gが指定時間にジャンプする機能だけど、
その時に現在の時間が表示されてるので、編集するつもりでctrl-A ctrl-Cでコピーしてくると
04:03.891
こんなフォーマットでクリップボードに入る
大抵はこれで足りる
80: 2022/12/03(土)18:02 ID:jcglrjSt0(3/3) AAS
>>79
そのあたりは、mpvのプラグインスクリプトのほうが楽かな
copyTime.luaっていうのがあって、これだと "Ctrl + C" だけで同じhh:mm:ss.fff形式のものが拾える
音声で厳密に出したいときはAudacityで波形を見ながらやることもある
81(1): 2022/12/03(土)19:25 ID:qgv9YMGz0(1) AAS
>>74
ありがとう
82: 2022/12/04(日)19:12 ID:fIgRbBjn0(1) AAS
>>81
ごめん、いろいろ悪ふざけが過ぎた
ただ、一応俺の目であってるか確認したけど、このレス自体はChatGPTに答えさせたやつなんだ
83: 53 2022/12/05(月)12:19 ID:E/pfDvK+0(1) AAS
>>53
ブロックノイズまみれになる原因が分かりました。
CPUエンコードと異なり -maxrateが効かないのを知らずに -b:v 指定だけが有効になってしまい、品質が派手に落ちたのが原因でした。
-qmaxで適切な値、例えば『少しくらいの劣化許容』なら -qmax 25 などと指定すれば、おおむね期待通りの結果が得られました。
質問と罵倒だけで無価値なログが残るのを避けるため報告します。
参考:
外部リンク:nico-lab.net
84: 2022/12/05(月)12:51 ID:uQn9iJkq0(1) AAS
vspipe -c y4m "test7.vpy" - |\
ffmpeg -y -i - -pix_fmt nv12 -c:v h264_amf -quality quality -rc vbr_peak -qmin 20 -qmax 26 -g 120 -maxrate 8M -b:v 2.5M "x264.mkv"
これで使ってる、まあエンコードはしないけどね
-c:v hevc_amf -quality quality -min_qp_i 20 -max_qp_i 28 -min_qp_p 20 -max_qp_p 28 -header_insertion_mode idr -g 120 -rc vbr_peak -bf 1 -vbaq false -maxrate 8M -b:v 1.5M
85: 2023/01/03(火)04:54 ID:zIiXdB410(1/2) AAS
FFmpegで指定できる伝達特性をまとめていて気がついたのですが。
zscaleフィルターsmpte240mのガンマと逆ガンマ補正の計算式が逆に実装されているのではないでしょうか?
実際にFFmpegを使用して映像にフィルタを適用し、試したわけではありません。
86: 2023/01/03(火)05:18 ID:zIiXdB410(2/2) AAS
ソースコードで言えば、この部分がおそらく間違っているのだろうと思いました。プログラムが読めないので確信はないのですが。
外部リンク[cpp]:github.com
87(1): 2023/01/03(火)08:44 ID:Ttl3j4JF0(1/2) AAS
SMPTE_240M_ALPHA = 1.1115
SMPTE_240M_BETA = 0.0228
光(L)、信号(V)とすると、
smpte_240m_oetf(float V)はこんな処理
1. Vが0以下ならV = 0とみなしてL = 0 (終わり)
2. Vが0.0912 (※4xBETA) より小さいなら
L = V ÷ 4 (終わり)
3. Vがそれ以上なら
L = { ( V + 0.1115 ) ÷ 1.1115 } の (1 ÷ 0.45)乗
smpte_240m_inverse_oetf(float L)はこんな処理
省5
88: 2023/01/03(火)08:48 ID:Ttl3j4JF0(2/2) AAS
外部リンク:www.jstage.jst.go.jp
このPDF見ながらソース読んでみたけど、処理自体は正しく書かれてるように思える
あとはこれを使ってる場所が正しくLとVを使ってるかどうかじゃないかなあ
Lを使うべきところでVを使ってるとか、その逆とか
89(1): 2023/01/05(木)00:25 ID:7mKKIxKi0(1/8) AAS
返信ありがとうございます。私もそのPDFを読んでみました。
>このPDF見ながらソース読んでみたけど、処理自体は正しく書かれてるように思える
>あとはこれを使ってる場所が正しくLとVを使ってるかどうかじゃないかなあ
>Lを使うべきところでVを使ってるとか、その逆とか
はい、そう思います。
同じソースコードの330行目を見ると、OETFの引数にVを、EOTFの引数にLを入力していませんか。
もしそうなら、LとVを逆に扱っていないでしょうか?
90(2): 2023/01/05(木)00:46 ID:7mKKIxKi0(2/8) AAS
>>89は予想です。
func.to_linearやfunc.to_gammaって書いてあるのを見て思っただけで、全体の処理の流れを理解していません。
>>87のプログラムの説明助かりました!
91: 2023/01/05(木)10:37 ID:QEuK8P+m0(1) AAS
>>90
330付近は300から始まるブロックだけど、select_transfer_functionって名前の通りでその処理(リニア化、ガンマ化)をするためにどの計算方法を使うかを選んでいる
リニア化はシーン参照(入力参照)なら上カーブになる240m_inverse、そうじゃない(出力参照)なら下カーブになるRec.1886eotfで正解じゃない?
勘違いしてるかな
いや、出力参照でRec.1886を使ってるのが正しいのかと言われると断言できないけど
92(1): 2023/01/05(木)20:49 ID:7mKKIxKi0(3/8) AAS
リニア化は人間の視覚特性に合わせて暗部の圧縮をするので下カーブになると思います。
ただ、どうして出力参照でRec.1886 EOTFを適用するんでしょう。
PDFの記述と食い違いがあります。(今気づきましたが、1991年の記事なんですね)
Rec.1886はCRTの模倣なので、再生時の逆ガンマ補正がもしCRTだけ(パススルー)だったら理にかなっています。
ネットで調べてもよくわからないです。
とりあえずいまは式をMarkdownへ書き起こす作業をしています。
上下前次1-新書関写板覧索設栞歴
あと 910 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s