仕事が速いですね!びっくりです!ヽ(´Д`;)ノ
早速、試させて頂きました。MPC-BEでも、TAW6でも問題なくシーク出来るようになっただけでなく、今までNVencCで出力しただけでは、TAW6ではスマートレンダリング(中身はただのコピー)で、出力できる.mp4が出来上がってました。
私の環境で、ですが、NVEncC64を利用したエンコードは、30分(約2G)のM2TS(BDAV)をMP4(H264/AVC、AC3)への変換に1分30秒と爆速エンコしてくれるので、とても助かります。(プリセットはパフォーマンスですが、画質的にこれで十分なので)
前のバージョンでは、さらにffmpegにて、tsコンテナに変換してやらないと、TAW6で上記のスマートレンダリングできなかったので、手間がさらに減った感じです。
BDAV→BDMV変換ですから、音声もAACからAC3への変換もしておりますが、最後の最後にこんなエラーを吐いて終了します。
[aac @ 000001c40af7ac80] decode_band_types: Input buffer exhausted before END element foundut size 2166.9MB
avout: failed to send packet to audio decoder: Invalid data found when processing input.
avout: avcodec writer: ignore error(1) on audio #1 decode at 4718235099(52424.8)
ただ、これで音声に問題が出てないので無視してもよい感じです。
音声が最後に尻切れ起こしてるのかもしれませんが…厳密にいえばの話で、視聴でそれを感じる事ができませんでした。
BDAVデータがcfrなので--avsync forcecfrで映像を固定ビットレートに変換してるのが関係しているのかもしれませんが、映像処理関係のソフトウェアを使い始めてまだ半月の私には、ちょっと知識不足が否めません…(´Д`;) いちぉーこれでもプログラマ気取りはしているのですが、10年書いてなかったら、浦島状態でして…汗
なにはともあれ、爆速対応、誠に有難うございました!(礼
失礼、少し心がはしゃぎ過ぎて日本語がおかしくなっていました。
✖:今までNVencCで出力しただけでは、TAW6ではスマートレンダリング(中身はただのコピー)で、出力できる.mp4が出来上がってました。
○:今までNVencCで出力したファイルをTAW6に読み込ませてもスマートレンダリング(中身はただのコピー)モードにならなかったのですが(更に一手間必要でした)、しかし今回のバージョンアップで、このモードになるMP4ファイルが出来る様になっていました。
…連投失礼orz
✖:BDAVデータがcfrなので
○:BDAVデータがvfrなので
勢いだけで書くものではありませんね、大変失礼致しました。
お世話になりまくってます!
とあるBDAVデータにて、動作が途中で停止してエンコードが終わってしまうので、オプションの問題かと思い
単純にこういう感じでエンコードしてみました。
NVEncC64 -i "!Src_m2ts!" -o "!Dst_mp4!"
これでも、
[mpegts @ 0000029026cc9780] max resync size reached, could not find sync byte
というエラーが出まくるのですが、最後に、
avcuvid: error occured while reading file: 48203 frames, Resource temporarily unavailable
と言って途中でエンコードが終わってしまいます。
--avsw オプションを使ってみましたが、avcuvid が avswに変わるだけでエラーに変わりはありませんでした。
元のBDAVファイル自体が破損しているのかも?とTAW6に読み込ませてみましたが、普通に読んでました。(このあたりは有料ソフトといったところか…)
このあたりのデコードはffmpegと同じDLL使ってるのかな?と思いつつ、とりあえず、TSから離れようと、NVEncC64に通す前に、
ffmpeg -i "!Src_m2ts!" -c:v copy -c:a ac3 "!Src_m2ts!.mp4"
というコンテナ変換ついでにオーディオ変換してから、NVencC64に通すと、上記エラーで停止する箇所を通過してエンコードする様です。
私では問題の切り分けができませんので、報告とさせて頂きます。
NVEncC64 --avhw -u performance -i "!Src_m2ts!" --avsync forcecfr --bluray --level 4.1 --vbr %~4 --max-bitrate %~5 --vbv-bufsize 20000 --gop-len 30 --output-res 1440x1080 --dar 16:9 --cuda-schedule spin --fps 29.97 --audio-codec ac3 --log-level debug --log log.txt -o "!Dst_mp4!"
何も言わずに終了してしまった…汗
--log-level debug --log log.txt 外すと動くんだけど。
[追記]
nvencc64 --log log.txt -i "temp.mp4" -o "temp2.mp4"
でもうごかんかったです。はい。
> [mpegts @ 0000029026cc9780] max resync size reached, could not find sync byte
> というエラーが出まくるのですが、最後に、
> avcuvid: error occured while reading file: 48203 frames, Resource temporarily unavailable
これはちょっとみたことないエラーですね…
なにかdemuxがうまくいっていない感じですね。再muxでいけるのなら破損ではないと思うのですが、簡単ではなさそうです。
ごめんなさい、--log は今バグっていまして(手元ではなおしたのですが)、フルパス指定しないと出なくなっています。(次回修正予定です)
まぁ、元々のBDAVデータがおかしく、FFmpegかけるとワーニングやらエラーやら吐きまくるデータですからね。
FFmpegでコンテナ変換して、MP4にしてやると、NVencC64でも落なくはなります。
最終的に出来た動画は音ズレ(だんだんズレていくタイプ)してるのですが…(笑)
それも、5.5時間データ(約20GB)で1秒以下のズレなので、30分毎に分割→NVencC64→結合で、誤魔化すバッチファイルを組みました。
動作的に、NVEncC64の問題というよりは、使ってるDLLの問題かなぁ…と思いつつ、そこまでフリーソフトに対応してくれなんてとても言えないし…
まあ、また気になった事があったら、お知らせ致します。m(_ _)m
このバージョンの話ではありません。
2ch(5ch)掲示板に、mp4にALACを指定するとエラーが出る、
mp4ではなくmovならALACを指定できると書かれていました。
おもしろそうなので確かめてみました。
動画(HEVC)と音声(ALAC)の含まれたmkvをNVEncCでエンコードしてみます。
そしてmkvからALACを取り出してfoobar2000でALAC(m4a)へコンバートしています。
✕NVEncCでmp4にエンコードして、--audio-codec ALACとする
○NVEncCでmp4にエンコードして、--audio-codec ALAC -o test.movとする
○NVEncCで動画だけをmp4にエンコードして、別途用意したALAC(m4a)を
L-SMASHのremuxerでmux
✕NVEncCで動画だけをmp4にエンコードして、別途用意したALAC(m4a)をNVEncCの
オプション--audio-source copyでmux
?--audio-fileでALACを出力するのは、私の使い方がおかしいのでしょう、
できませんでした
私はmp4とmovの違いを理解していませんが、NVEncCの動作からすると違うのでしょう。
はやり、NVEncCではMP4コンテナにALACをエンコードしてmuxできないのでしょうか?
間違いがありました。
>動画(HEVC)と音声(ALAC)の含まれたmkvをNVEncCでエンコードしてみます。
>そしてmkvからALACを取り出してfoobar2000でALAC(m4a)へコンバートしています。
動画(HEVC)と音声(FLAC)の含まれたmkvをNVEncCでエンコードしてみます。
そしてmkvからFLACを取り出してfoobar2000でALAC(m4a)へコンバートしています。
NVEncCではmp4へのalac muxには対応しておりません。
ffmpeg 4.3のlibavformatのmp4に出力可能なコーデックには、ALACは含まれていないためです。
https://github.com/FFmpeg/FFmpeg/blob/release/4.3/libavformat/movenc.c#L7013-L7047
お返事、ありがとうございます。
理解いたしました。