ffmpeg - 多路复用视频和音频以及 trim 音频
ffmpeg - mux video and audio and trim the audio
我有一个很长的音频部分
和一个短视频部分,我想 mux 在一起。
我正在尝试对 mux 使用以下命令:
- Video_0-0002.h264 - 整个文件(2 秒长)
- Audio.wav - 从 4 到 6 秒
ffmpeg -y -i /Documents/viz-1/01/Video_0-0002.h264 -i /Documents/viz-1/01/Audio.wav -codec:v copy -f mp4 -af atrim=4:6 -strict experimental -movflags faststart /Documents/viz-1/01/Video_0-0001.mp4
但是音频很乱...
我怎样才能正确地做到这一点?
也试过了,最后好像没声音了
ffmpeg -y -i Video_0-0003.h264 -i Audio.wav -c:v copy -af atrim=6:8,asetpts=PTS-STARTPTS -strict experimental -movflags +faststart Video_0-0003. mp4
输入 #0,h264,来自 'Video_0-0003.h264':
持续时间:N/A,比特率:N/A
流 #0:0:视频:h264(主要)、yuv420p(渐进式)、388x388 [SAR 1:1 DAR 1:1]、30 fps、30 tbr、1200k tbn、60 tbc
输入流 #1.0 的猜测频道布局:立体声
输入 #1,wav,来自 'Audio.wav':
持续时间:00:00:16.98,比特率:1411 kb/s
流#1:0:音频:pcm_s16le ([1][0][0][0] / 0x0001),44100 Hz,立体声,s16, 1411 kb/s
输出 #0,mp4,到 'Video_0-0003.mp4':
元数据:
编码器:Lavf57.56.100
流 #0:0:视频:h264(主)([33][0][0][0] / 0x0021),yuv420p(渐进式),388x388 [SAR 1:1 DAR 1:1], q=2-31, 30 fps, 30 tbr, 1200k tbn, 1200k tbc
流 #0:1:音频:aac (LC) ([64][0][0][0] / 0x0040),44100 Hz,立体声,fltp,128 kb/s
元数据:
编码器:Lavc57.64.101 aac
流映射:
流 #0:0 -> #0:0(复制)
流#1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
按 [q] 停止,[?] 寻求帮助
[mp4 @ 0x7fca8f015000] 流 0 的数据包中未设置时间戳。这已被弃用,将来会停止工作。修复您的代码以正确设置时间戳
[mp4 @ 0x7fca8f015000] 开始第二遍:将 moov 原子移动到文件的开头
frame= 60 fps=0.0 q=-1.0 Lsize= 242kB time=00:00:02.02 bitrate= 982.2kbits/s speed= 21x
video:207kB audio:32kB subtitle:0kB 其他 streams:0kB 全局 headers:0kB 混合开销:1.382400%
[aac @ 0x7fca8f017400] Qavg:1076.270
尝试
ffmpeg -y -i /Documents/viz-1/01/Video_0-0002.h264 -i /Documents/viz-1/01/Audio.wav -c:v copy -af atrim=4:6,asetpts=PTS-STARTPTS -strict experimental -movflags +faststart /Documents/viz-1/01/Video_0-0001.mp4
您可以尝试按视频时序切割音频,然后合并视频和音轨。
在单独的 ffmpeg 进程中使用 -vn 和 -an。
ffmpeg -i video.mp4 -c:v h264 -an -y video.h264
ffmpeg -i video.mp4 -c:a aac -t 00:01:00 -vn -y audio.aac
对于边缘轨道:
ffmpeg -i auido.acc -i video.h264 -c:v copy -c:a copy -f mp4 -y out.mp4
我有一个很长的音频部分 和一个短视频部分,我想 mux 在一起。
我正在尝试对 mux 使用以下命令:
- Video_0-0002.h264 - 整个文件(2 秒长)
- Audio.wav - 从 4 到 6 秒
ffmpeg -y -i /Documents/viz-1/01/Video_0-0002.h264 -i /Documents/viz-1/01/Audio.wav -codec:v copy -f mp4 -af atrim=4:6 -strict experimental -movflags faststart /Documents/viz-1/01/Video_0-0001.mp4
但是音频很乱... 我怎样才能正确地做到这一点?
也试过了,最后好像没声音了
ffmpeg -y -i Video_0-0003.h264 -i Audio.wav -c:v copy -af atrim=6:8,asetpts=PTS-STARTPTS -strict experimental -movflags +faststart Video_0-0003. mp4
输入 #0,h264,来自 'Video_0-0003.h264': 持续时间:N/A,比特率:N/A 流 #0:0:视频:h264(主要)、yuv420p(渐进式)、388x388 [SAR 1:1 DAR 1:1]、30 fps、30 tbr、1200k tbn、60 tbc 输入流 #1.0 的猜测频道布局:立体声 输入 #1,wav,来自 'Audio.wav': 持续时间:00:00:16.98,比特率:1411 kb/s 流#1:0:音频:pcm_s16le ([1][0][0][0] / 0x0001),44100 Hz,立体声,s16, 1411 kb/s 输出 #0,mp4,到 'Video_0-0003.mp4': 元数据: 编码器:Lavf57.56.100 流 #0:0:视频:h264(主)([33][0][0][0] / 0x0021),yuv420p(渐进式),388x388 [SAR 1:1 DAR 1:1], q=2-31, 30 fps, 30 tbr, 1200k tbn, 1200k tbc 流 #0:1:音频:aac (LC) ([64][0][0][0] / 0x0040),44100 Hz,立体声,fltp,128 kb/s 元数据: 编码器:Lavc57.64.101 aac 流映射: 流 #0:0 -> #0:0(复制) 流#1:0 -> #0:1 (pcm_s16le (native) -> aac (native)) 按 [q] 停止,[?] 寻求帮助 [mp4 @ 0x7fca8f015000] 流 0 的数据包中未设置时间戳。这已被弃用,将来会停止工作。修复您的代码以正确设置时间戳 [mp4 @ 0x7fca8f015000] 开始第二遍:将 moov 原子移动到文件的开头 frame= 60 fps=0.0 q=-1.0 Lsize= 242kB time=00:00:02.02 bitrate= 982.2kbits/s speed= 21x video:207kB audio:32kB subtitle:0kB 其他 streams:0kB 全局 headers:0kB 混合开销:1.382400% [aac @ 0x7fca8f017400] Qavg:1076.270
尝试
ffmpeg -y -i /Documents/viz-1/01/Video_0-0002.h264 -i /Documents/viz-1/01/Audio.wav -c:v copy -af atrim=4:6,asetpts=PTS-STARTPTS -strict experimental -movflags +faststart /Documents/viz-1/01/Video_0-0001.mp4
您可以尝试按视频时序切割音频,然后合并视频和音轨。 在单独的 ffmpeg 进程中使用 -vn 和 -an。
ffmpeg -i video.mp4 -c:v h264 -an -y video.h264
ffmpeg -i video.mp4 -c:a aac -t 00:01:00 -vn -y audio.aac
对于边缘轨道:
ffmpeg -i auido.acc -i video.h264 -c:v copy -c:a copy -f mp4 -y out.mp4