Как убрать блик в начале видео с помощью FFMPEG?

376
Nova

В настоящее время я использую этот скрипт 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, а затем искать абсолютную миллисекунду до тех пор, пока не прозвучит сообщение. Возможно, это не самое простое решение, но работа сделана на данный момент.

0
Я никогда не работал с ffmpg, но общее «правило» состоит в том, чтобы либо обрезать точку пересечения нуля в вашем звуковом файле, либо использовать небольшое затухание [in, out или cross, в зависимости от того, где находится щелчок] Tetsujin 6 лет назад 1

0 ответов на вопрос