我正在使用Python 3.6。我正在尝试将视频拆分为指定时间的子剪辑。我有一个250" .mp4"文件和单独的csv,以及我希望每个视频被子剪辑的时间。例如,第一个.mp4文件将是" firstvideo.mp4"至" twohundredfiftyvideo.mp4"。另外,我有一个csv文件,每个视频文件名在A列,每个视频需要分割的时间(B列到I)。所有视频都需要分成4个子剪辑。 .csv看起来像:
col A col B col C colD colE .. colI
row1 firstvideo.mp4 00:00:10 - 00:00:20 - 00:01:15 - 00:02:04 .. 00:07:15
row2 secondvideo.mp4 00:00:15 - 00:00:34 - 00:01:05 - 00:01:55 .. 00:08:23
" firstvideo.mp4"需要从第二个10到20的第一次拆分,从1m15s到2m04s的第二次拆分等等(colI是第四个子夹应该停止的时间)。该进程应迭代对应于文件夹中250 mp4文件的250行csv文件中的每一行。
到目前为止,我唯一知道的是使用ffmpeg将视频分成4个子剪辑并生成4个不同的输出文件,但不知道如何逐行读取csv ...这是我的代码所以远。
ffmpeg -i firstvideo.mp4 -vcodec copy -acodec copy -ss 00:00:10 -t 00:00:20
firstvideo_1.mp4 -vcodec copy -acodec copy -ss 00:01:15 -t 00:02:04 firstvideo_2.mp4 -vcodec copy -acodec copy -ss 00:03:48 -t 00:04:23
firstvideo_3.mp4 -vcodec copy -acodec copy -ss 00:05:30 -t 00:07:15 firstvideo_4.mp4
我将每个输出文件命名为原始视频文件名后附加_1,_2,_3或_4。理想情况下,我会为每个视频生成4个子剪辑(即250个视频x 4个子剪辑/视频= 1,000个mp4文件),然后将每个视频4个子剪辑连接成一个文件(即250个附加文件)。事实上,我并不关心4个子剪辑,我会在生成连接文件后删除它们。
感谢您的时间,