如何从ffmpeg实时写入的视频文件中提取视频片段

时间:2015-02-26 12:41:55

标签: video youtube ffmpeg youtube-dl

目前我正在使用youtube-dl(https://github.com/rg3/youtube-dl)录制来自youtube的实况视频流

我用于此的命令:

youtube-dl --id -f 92 https://www.youtube.com/watch?v=VYlQJbsVs48

92是执行命令获取格式后得到的格式代码,这给了我这个列表:

format code  extension  resolution note
140          m4a        audio only DASH audio  144k , m4a_dash container, aac  @128k (48000Hz)
141          m4a        audio only DASH audio  272k , m4a_dash container, aac  @256k (48000Hz)
160          mp4        256x144    DASH video  124k , 15fps, video only
133          mp4        426x240    DASH video  258k , 30fps, video only
134          mp4        640x360    DASH video  616k , 30fps, video only
135          mp4        854x480    DASH video 1116k , 30fps, video only
136          mp4        1280x720   DASH video 2216k , 30fps, video only
137          mp4        1920x1080  DASH video 4141k , 30fps, video only
151          mp4        72p        HLS
132          mp4        240p       HLS
92           mp4        240p       HLS
93           mp4        360p       HLS
94           mp4        480p       HLS
95           mp4        720p       HLS
96           mp4        1080p      HLS  (best)

这会创建一个名为 VYlQJbsVs48.mp4.part 的文件,当然会变得越来越大。

有没有办法从该直播流中提取视频片段或形成部分文件?或者也许有更好的方法来做到这一点?

我注意到,如果我强制退出iTerm2而youtube-dl正在运行.part文件,它会创建不包含任何索引信息(与 moov atom不存在有关) mp4文件 - 这是关于帧数和其他东西的信息 - 我想的元数据),所以它让我觉得我无法从文件中提取。

也许如果有一种方法可以让youtube-dl 始终 ,或者可以采用其他方式记录直播流并在录制时获取视频片段。

我忘了提到我在OSX Yosemite上这样做了。我安装了自制的FFMPEG和youtoube-dl

如果有解决方案,我非常乐意在UBUNTU上尝试。

非常感谢任何帮助。

谢谢。

亚历

1 个答案:

答案 0 :(得分:0)

此命令将提取5秒钟的摘要:

ffmpeg -i $(youtube-dl -f 92 -g https://www.youtube.com/watch?v=36YnV9STBqc) -c:v copy -c:a copy -t 00:00:05 snippet.mp4

使用-g选项, youtube-dl 仅输出视频流URL。

经过ffmpeg 4.3,youtube-dl 2020.07.28和YouTube广播直播流的测试。

参考:superuser