gpt4 book ai didi

shell - 具有不同文件扩展名的ffmpeg图像concat文件

转载 作者:行者123 更新时间:2023-12-04 23:02:39 26 4
gpt4 key购买 nike

我一直在使用 ffmpeg 并且我已经让它完美地工作了好几次,但是最近我遇到了一个问题,我的文本文件中的所有图像都没有使用。

我的文本文件看起来像 -

ffconcat version 1.0
file 'gallery-house-77-west-55th-street-01.jpg'
duration 4.44
file 'img03.jpg'
duration 4.44
file 'inside.png'
duration 4.44
file 'placeholder.png'

(文件数量、文件名和扩展名总是不同的)

我已经尝试了几种组合,但到目前为止我的 ffmpeg 函数看起来像 -
ffmpeg -i audio.mp3 -safe 0 -f concat -i paths.txt -c:a copy -c:v libx264 \
-vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,fps=25,format=yuv420p" -vsync vfr -movflags +faststart -y output.mp4 2>&1');

尝试运行它时,视频似乎已转换但有各种奇怪的行为 - 有时仅显示列表中的中间文件(图像)或仅显示/渲染前 2 个。

虽然音频播放正确。

我尝试为输入设置帧速率,也尝试为输出设置帧速率,但这会导致更奇怪的行为。

这是运行我上面的 ffmpeg 命令时所回显的内容 -
 libavutil      56. 15.100 / 56. 15.100
libavcodec 58. 19.100 / 58. 19.100
libavformat 58. 13.100 / 58. 13.100
libavdevice 58. 4.100 / 58. 4.100
libavfilter 7. 18.100 / 7. 18.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
libpostproc 55. 2.100 / 55. 2.100
[mp3 @ 0xb46780] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'audio.mp3':
Metadata:
encoder : Lavf57.71.100
Duration: 00:00:19.98, start: 0.000000, bitrate: 48 kb/s
Stream #0:0: Audio: mp3, 22050 Hz, mono, fltp, 48 kb/s
Input #1, concat, from 'paths.txt':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #1:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 754x424 [SAR 72:72 DAR 377:212], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #1:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[swscaler @ 0xba25c0] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0xb710c0] using SAR=3393/3392
[libx264 @ 0xb710c0] using cpu capabilities: none!
[libx264 @ 0xb710c0] profile High, level 3.1
[libx264 @ 0xb710c0] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=22 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf58.13.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 3393:3392 DAR 377:212], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc58.19.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: mp3 (mp4a / 0x6134706D), 22050 Hz, mono, fltp, 48 kb/s
[swscaler @ 0xb93140] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0xb93140] Warning: data is not aligned! This can lead to a speed loss
[mjpeg @ 0xb6e200] mjpeg: unsupported coding type (cd)
[mjpeg @ 0xb6e200] mjpeg: unsupported coding type (c8)
[mjpeg @ 0xb6e200] Found EOI before any SOF, ignoring
[mjpeg @ 0xb6e200] mjpeg: unsupported coding type (c7)
Error while decoding stream #1:0: Invalid data found when processing input
[mjpeg @ 0xb6e200] invalid id 94
Error while decoding stream #1:0: Invalid data found when processing input
[mp4 @ 0xb6f8c0] Starting second pass: moving the moov atom to the beginning of the file
frame= 1 fps=0.0 q=28.0 Lsize= 179kB time=00:00:19.95 bitrate= 73.6kbits/s speed=44.1x
video:58kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.446521%
[libx264 @ 0xb710c0] frame I:1 Avg QP:28.86 size: 58683
[libx264 @ 0xb710c0] mb I I16..4: 21.2% 59.8% 19.0%
[libx264 @ 0xb710c0] 8x8 transform intra:59.8%
[libx264 @ 0xb710c0] coded y,uvDC,uvAC intra: 50.5% 65.2% 31.6%
[libx264 @ 0xb710c0] i16 v,h,dc,p: 10% 60% 3% 28%
[libx264 @ 0xb710c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 27% 26% 4% 4% 4% 6% 4% 7%
[libx264 @ 0xb710c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 33% 10% 5% 6% 5% 8% 5% 7%
[libx264 @ 0xb710c0] i8c dc,h,v,p: 47% 34% 11% 8%
[libx264 @ 0xb710c0] kb/s:11736.60

任何想法是什么导致图像序列失败?

编辑

经过更多调试后,我认为这可能与所有文件的扩展名不同这一事实有关。我怎样才能使它不必那样,或者已经是默认设置,问题出在哪里?

编辑 2

当所有图像扩展名都相同时,我可以让它工作,但是当它到达 png 或任何其他图像扩展名时,它会渲染电影,但电影在到达该帧时会停止(不完整)。这发生在我——
1.把所有的jpg放在png之前
2.运行以下命令----
ffmpeg -safe 0 -f concat -i paths.txt -c:v libx264 \
-vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -pix_fmt yuv420p -movflags +faststart -y output.mp4 2>&1

所以我最后的猜测可能是正确的,这是因为我在我的 ffmpeg 命令中混合了多个图像扩展名。

如何更正它以允许混合任何图像文件?

最佳答案

不可能。与其说是不同的扩展名,不如说是不同的编解码器。如果是图像,扩展程序会跟踪编解码器。

您必须将所有输入转换为相同的编解码器。我推荐PNG。

关于shell - 具有不同文件扩展名的ffmpeg图像concat文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164152/

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