kaikoma-soft / CMcut4U-Mk2

Unix 系 OS 上で TSファイルの半自動CMカット (CMcut4U の改良版)
Apache License 2.0
21 stars 1 forks source link

2カ国語の対応 #1

Closed mimaburao closed 4 years ago

mimaburao commented 4 years ago

副音声として英語を同時にエンコードする場合 ffmpegのオプションとして-map 0:v -map 0:a といったことを行って対応しました。 従いまして、 concat.sh中で #

部分 mp4 を結合する。

# $FFMPEG \ -loglevel $LOGLEVEL -hide_banner \ -f concat -safe 0 \ -i "$INPUT" \ -map 0:v -c:v copy -map 0:a -c:a copy \ #挿入部分 -y "$OUTPUT"

#

メタ情報の付加

# if [ -s "$OUTPUT" ] then TMP="$OUTPUT".tmp $FFMPEG \ -loglevel $LOGLEVEL -hide_banner \ -i "$OUTPUT" \ -i "$METAFN" \ -map_metadata 1 \ -map 0:v -c:v copy -map 0:a -c:a copy \ #挿入部分 -f mp4 \ -y "$TMP"

又、自分はエンコードにてto_mp4_h264_nvenc.shを利用しており、ffmpegのオプションとして -max_muxing_queue_size 400 -map 0:v -c:v h264_nvenc -map 0:a -acodec aac \ を追加しております。-max_muxing_queue_size 400を入れませんとtsのドロップ部分が発生した場合ffmpegが落ちてしまいます。

CMcut4Uの時から利用させてもらっています。今回の改訂で使い勝手が大幅に向上しました。ありがとう御座います。

利用環境 GPU:GTX1060 OS:Linux mint19.3 利用ソフト:ffmpeg 4.2

kaikoma-soft commented 4 years ago

ご指摘ありがとうございます。自分は日本語音声のみ必要だったので、考慮していませんでした。 一般的には、2カ国語の音声はエンコード後もそのままであるべきだと思いますので、Ver0.1.0 で取り込ませて頂きました。 ただ、-max_muxing_queue_size はこちらでは必要になった事は無く、また副作用もありそうなので、入れていません。必要に応じてカスタマイズして下さい。

mimaburao commented 4 years ago

最近はtsドロップをffmpegで一旦tsに再エンコードしてから、tsファイルをCMcut4U2のエンコードにかけると引っかからなくなりました。実験段階ですが-max_muxing_queue_sizeは必要なくなりました。