В настоящее время я использую этот скрипт bat, но проблема в том, что половину времени я получаю это сообщение, хотя трек original.mp4 должен быть беззвучным с отметкой времени -ss
.
REM ffmpeg ~ Run ffmpeg.exe.
REM " ^" ~ Without the qoutes, this is used for splitting 1 command on multiple lines.
REM -loop 1 ~ Use for using image input as frames. Be aware -to is required for encoding to stop.
REM -i [file] ~ Audio/Image/Video file to input.
REM -acodec [codec] ~ Codec to use. "copy" without the qoutes, for copying source stream without damage.
REM -ss [hh:mm:ss.ms] ~ Starting offset time for output file.
REM -to [hh:mm:ss.ms] ~ Ending offset time for output file. Not based of -ss.
REM -vf [format=yuv420p] ~ Video compatibilitiy for rubbish players. "Films & TV" on Windows is one of them.
REM -y ~ Auto comfirm output file overwrite if it already exists.
REM [file] ~ The last parameter is the output file. File extension auto does the hard work.
ffmpeg ^
-loop 1 ^
-i image.png ^
-i original.mp4 ^
-acodec copy ^
-ss 00:00:07.07 ^
-to 00:02:29.15 ^
-vf format=yuv420p ^
-y ^
output.mp4
REM Open file after ffmpeg operation.
output.mp4
Игнорировать комментарии .bat. Это просто для дальнейшего использования и облегчает чтение для меня.
Выходные данные копируют аудиопоток, обрезанный из исходного записанного видео, без каких-либо потерь в аудио через перекодирование при замене видео на неподвижное изображение с разрешением 1280x720.
Иногда, когда мне везет, что сообщение не появляется после попытки перезаписи, иногда это все еще слышно на YouTube. Но я хочу обрезать звук без каких-либо повреждений аудио через перекодирование.
Это ffprobe оригинального записанного видео.
ffprobe version 3.4.2 Copyright (c) 2007-2018 the FFmpeg developers
built with gcc 7.3.0 (GCC)
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libmfx --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'original.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2018-03-30T15:30:12.000000Z
Duration: 00:05:09.75, start: 0.000000, bitrate: 1581 kb/s
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 95 kb/s (default)
Metadata:
creation_time : 2018-03-30T15:30:12.000000Z
handler_name : SoundHandle
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 426x240, 1478 kb/s, 30.06 fps, 28.50 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2018-03-30T15:30:12.000000Z
handler_name : VideoHandle
Я уже пытался добавить -af "volume=volume='between(t,0,3)':volume=0"
с https://video.stackexchange.com/q/15323/17692, но FFMPEG предупреждает, что может' не может использоваться с -acodec copy
.
Обновить
Я нашел решение. Я установил его, чтобы остановить воспроизведение в выходном файле через 3 секунды, чтобы ускорить его конвертирование, а также увеличить начальные миллисекунды на 10-50, а затем искать абсолютную миллисекунду до тех пор, пока не прозвучит сообщение. Возможно, это не самое простое решение, но работа сделана на данный момент.