yt-dlp
youtube-dl後継
あくまでも自分の保存用YouTube配信をダウンロードして切り抜くのに使う
開始・終了時間を指定
--downloader ffmpeg --downloader-args "ffmpeg_i:-ss start_time -to end_time"
-to で終了時間指定できたんだ (-t しか知らなかった)
hlsなどで数秒おきにファイルが分割されている場合、その分割に合わせて取得しないと大幅な音声のズレや無音部分などが発生する
mpvで再生するときにこうなる
code:mpvoutput.log
(+) Video --vid=1 (*) (h264 1280x720 59.999fps)
(+) Audio --aid=1 (*) (aac 2ch 48000Hz)
AO: wasapi 48000Hz stereo 2ch float AV: 00:00:00 / 00:00:30 (0%) A-V: 0.000 Dropped: 2
Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).
AV: 00:00:10 / 00:00:30 (35%) A-V: 5.797 ct: 4.206 Dropped: 251
A-Vは音声再生開始時に約10.0から始まり、24秒かけて徐々に収まっていく
ctは逆に増えていって約10.0で止まる
Droppedはその間大量に増えていき、約600で止まる
Twitchの場合、 -ss 3:35:10.016 のように10秒おきかつ若干遅らせる
A-Vが0.03くらいから始まり、一瞬で収まる
0.00は無理っぽい
ctが増えず、Dropped: 1 にもならない理想の値は開始時間や動画のfps数などにもよりそう
動画ごとに事前に30秒ほどダウンロードしてテストしたほうがよい
-to (-t) は10秒の倍数とかにしなくてもffmpegがいい感じにカットしてくれるっぽい
youtube-dl 時代に使っていた -u --get-url はyt-dlpでは消えている