FFmpeg:连接 .webm 文件有些只是视频有些只是音频有些两者都有
FFmpeg: Concatenate .webm files some are video only some audio only some with both
在我的例子中,我有 3 个 .webm 文件,第一个是纯音频,第二个是纯视频,第三个是音频和视频。
我想将它们连接到一个文件中,该文件对纯音频部分显示黑屏,对纯视频部分显示视频,并同时播放具有音频和视频的部分。
视频编解码器为VP8,音频编解码器为Opus。
concat.txt 包含三个文件的条目
我正在使用以下命令来连接它们。
ffmpeg -f concat -safe 0 -i ./concat.txt -c copy -y output.webm
此命令创建输出文件,当我播放它时,它只播放第一个纯音频部分,当它到达纯视频部分时崩溃。
我也尝试将虚拟图片添加到纯音频文件,但是当我尝试连接时命令失败。
欢迎大家help/critique。
谢谢!
有关输入文件的更多信息
Input #0, matroska,webm, from 'original1.webm':
Metadata:
title : -
ENCODER : Lavf58.45.100
Duration: 00:00:09.99, start: 0.000000, bitrate: 34 kb/s
Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:00:09.990000000
Input #1, matroska,webm, from 'original2.webm':
Metadata:
title : -
ENCODER : Lavf58.45.100
Duration: 00:00:09.75, start: 0.000000, bitrate: 954 kb/s
Stream #1:0: Video: vp8, yuv420p(tv, bt470bg/unknown/unknown, progressive), 1680x1050, SAR 1:1 DAR 8:5, 1k tbr, 1k tbn, 1k tbc (default)
Metadata:
DURATION : 00:00:09.754000000
Input #2, matroska,webm, from 'original3.webm':
Metadata:
title : -
ENCODER : Lavf58.45.100
Duration: 00:00:10.02, start: 0.000000, bitrate: 912 kb/s
Stream #2:0: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:00:10.023000000
Stream #2:1: Video: vp8, yuv420p(tv, bt470bg/unknown/unknown, progressive), 1680x1050, SAR 1:1 DAR 8:5, 1k tbr, 1k tbn, 1k tbc (default)
Metadata:
DURATION : 00:00:09.965000000
所有要串联的文件必须具有 same attributes 和流顺序。
将黑色视频添加到纯音频文件:
ffmpeg -i audio.webm -f lavfi -i color=s=1680x1050 -r 1000 -map 0 -map 1 -c:a copy -c:v libvpx -shortest output1.webm
将无声音频添加到纯视频文件:
ffmpeg -f lavfi -i anullsrc=r=48000:cl=stereo -i video.webm -map 0 -map 1 -c:a libopus -c:v copy -shortest output2.webm
制作input.txt
内容如下:
file 'output1.webm'
file 'output2.webm'
file 'original3.webm'
使用 concat 分离器连接:
ffmpeg -f concat -safe 0 -i concat.txt -c copy output.webm
在我的例子中,我有 3 个 .webm 文件,第一个是纯音频,第二个是纯视频,第三个是音频和视频。
我想将它们连接到一个文件中,该文件对纯音频部分显示黑屏,对纯视频部分显示视频,并同时播放具有音频和视频的部分。
视频编解码器为VP8,音频编解码器为Opus。
concat.txt 包含三个文件的条目
我正在使用以下命令来连接它们。
ffmpeg -f concat -safe 0 -i ./concat.txt -c copy -y output.webm
此命令创建输出文件,当我播放它时,它只播放第一个纯音频部分,当它到达纯视频部分时崩溃。
我也尝试将虚拟图片添加到纯音频文件,但是当我尝试连接时命令失败。
欢迎大家help/critique。
谢谢!
有关输入文件的更多信息
Input #0, matroska,webm, from 'original1.webm':
Metadata:
title : -
ENCODER : Lavf58.45.100
Duration: 00:00:09.99, start: 0.000000, bitrate: 34 kb/s
Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:00:09.990000000
Input #1, matroska,webm, from 'original2.webm':
Metadata:
title : -
ENCODER : Lavf58.45.100
Duration: 00:00:09.75, start: 0.000000, bitrate: 954 kb/s
Stream #1:0: Video: vp8, yuv420p(tv, bt470bg/unknown/unknown, progressive), 1680x1050, SAR 1:1 DAR 8:5, 1k tbr, 1k tbn, 1k tbc (default)
Metadata:
DURATION : 00:00:09.754000000
Input #2, matroska,webm, from 'original3.webm':
Metadata:
title : -
ENCODER : Lavf58.45.100
Duration: 00:00:10.02, start: 0.000000, bitrate: 912 kb/s
Stream #2:0: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:00:10.023000000
Stream #2:1: Video: vp8, yuv420p(tv, bt470bg/unknown/unknown, progressive), 1680x1050, SAR 1:1 DAR 8:5, 1k tbr, 1k tbn, 1k tbc (default)
Metadata:
DURATION : 00:00:09.965000000
所有要串联的文件必须具有 same attributes 和流顺序。
将黑色视频添加到纯音频文件:
ffmpeg -i audio.webm -f lavfi -i color=s=1680x1050 -r 1000 -map 0 -map 1 -c:a copy -c:v libvpx -shortest output1.webm
将无声音频添加到纯视频文件:
ffmpeg -f lavfi -i anullsrc=r=48000:cl=stereo -i video.webm -map 0 -map 1 -c:a libopus -c:v copy -shortest output2.webm
制作
input.txt
内容如下:file 'output1.webm' file 'output2.webm' file 'original3.webm'
使用 concat 分离器连接:
ffmpeg -f concat -safe 0 -i concat.txt -c copy output.webm