gpt4 book ai didi

audio - 我可以将基于另一个视频的无声音频添加到从 PNG 循环创建的视频中吗

转载 作者:行者123 更新时间:2023-12-03 00:27:30 25 4
gpt4 key购买 nike

我们将视频转码为 h.264,但复制原始音轨(它们都不同)。我们现在正尝试在原始视频开始之前添加 10 秒免责声明。显然这两个视频的音轨必须相同,所以我试图根据将要连接的视频的音轨为生成的视频添加一个静音音轨。

从其他问题中,我学会了添加 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 , 但这会在连接发生时导致音频乱码。因此,使用 ffprobe,我想获取所需的任何音频属性并在前置视频中使用它们。

所以问题是:如何在创建 10 秒视频时指定我想要/需要的特定音轨设置?

FFMpeg 创建 10 秒免责声明
ffmpeg.exe -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -loop 1 -i disclaimer.png -filter:v "fade=out:st=8:d=2" -c:v libx264 -t 10 -pix_fmt yuv420p -r 29.97 disclaimer.mp4
FFP探针

ffprobe -show_format -show_streams OriginalVideo.mp4
ffprobe version N-73975-gda8b70b Copyright (c) 2007-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
libavutil 54. 28.100 / 54. 28.100
libavcodec 56. 52.100 / 56. 52.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 27.100 / 5. 27.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'OriginalVideo.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : 343520959333629
encoder : Lavf56.40.101
Duration: 00:00:24.56, start: 0.160998, bitrate: 245 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x400 [SAR 1615:1616 DAR 323:202], 194 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (HE-AACv2) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 47 kb/s (default)
Metadata:
handler_name : SoundHandler
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=1/50
codec_tag_string=avc1
codec_tag=0x31637661
width=640
height=400
coded_width=640
coded_height=400
has_b_frames=2
sample_aspect_ratio=1615:1616
display_aspect_ratio=323:202
pix_fmt=yuv420p
level=31
color_range=N/A
color_space=unknown
color_transfer=unknown
color_primaries=unknown
chroma_location=left
timecode=N/A
refs=5
is_avc=1
nal_length_size=4
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/90000
start_pts=0
start_time=0.000000
duration_ts=2181600
duration=24.240000
bit_rate=194642
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=606
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:language=und
TAG:handler_name=VideoHandler
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=HE-AACv2
codec_type=audio
codec_time_base=1/44100
codec_tag_string=mp4a
codec_tag=0x6134706d
sample_fmt=fltp
sample_rate=44100
channels=2
channel_layout=stereo
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/44100
start_pts=-7100
start_time=-0.160998
duration_ts=1083268
duration=24.563900
bit_rate=47738
max_bit_rate=48053
bits_per_raw_sample=N/A
nb_frames=526
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:language=und
TAG:handler_name=SoundHandler
[/STREAM]
[FORMAT]
filename=OriginalVideo.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=-0.160998
duration=24.564000
size=753253
bit_rate=245319
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:title=343520959333629
TAG:encoder=Lavf56.40.101
[/FORMAT]

最佳答案

串联有两个要求:

  • 所有输入必须具有相同数量和类型的流。
  • 所有流必须具有相同的参数。
  • disclaimer.mp4没有音频。 OriginalVideo.mp4具有 HE-AACv2 音频。

    所以你需要 create a silent audio stream对于 disclaimer.mp4并将其编码为 HE-AACv2。但是,这可能会有问题,因为 FFmpeg 支持的唯一 HE-AACv2 音频编码器是 libfdk_aac,您的 ffmpeg构建不支持。或者,您可以考虑使用不同的独立编码器。

    或者将无声音频创建为 LC-AAC(命令 AAC 变体)并重新编码 OriginalVideo.mp4作为 LC-AAC。

    关于audio - 我可以将基于另一个视频的无声音频添加到从 PNG 循环创建的视频中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55287742/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com