我尝试使用此解决方案使用 ffmpeg为 MP4设置海报框架。
ffmpeg -i input.mp4 -i image.png -acodec copy -vcodec copy -map 0 -map 1:0 -metadata comment="adding a comment" output.mp4
Run Code Online (Sandbox Code Playgroud)
正在设置元数据,但未保存图像。ffprobe -show_format当我用电影检查此输出时,确实包含 3 个流(而不是旧的 2 个流),但它认为这是一个视频:
Stream #0:2(und): Video: png (mp4v / 0x7634706D), rgba(pc), 843x633, 123731 kb/s, 25 fps, 25 tbr, 12800 tbn, 12800 tbc
Run Code Online (Sandbox Code Playgroud)
使用 GUI 程序保存图像,然后检查显示
Stream #0:2: Video: png, rgb24(pc), 843x633, 90k tbr, 90k tbn, 90k tbc
Run Code Online (Sandbox Code Playgroud)
如何指定第二个输入是图像?
是否可以让 rsync 读取要从活动脚本中的数组而不是随附文件中包含的文件列表?
## declare an array variable
declare -a files=("path" "path" "path")
rsync --files-from=${files[@]} source destination
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?我只想管理一个脚本文件。
我正在尝试从 bash 脚本运行多个 rsync 命令,但只有第一个触发。我试过将命令与&&和链接,;但都不起作用。
#! /bin/bash
rsync -ahPr --delete-excluded --exclude='.DS_Store' --exclude=Caches/ --ignore-errors --stats --log-file=$LOGFILE --files-from=$FILESFROM ~/$SOURCE /Volumes/$DEST &&
rsync -avh --progress ~/.profile /Volumes/$DEST/_profile/profile &&
rsync -avh --progress ~/.gitconfig /Volumes/$DEST/_profile/gitconfig &&
rsync -avh --progress ~/.ssh/ /Volumes/$DEST/_profile/ssh/ &&
rsync -avh --progress ~/.vim/ /Volumes/$DEST/_profile/vim/
Run Code Online (Sandbox Code Playgroud)
我将最后 4 个命令作为单独的命令执行,因为我正在动态重命名文件/目录 - 不确定是否有更好的方法来做到这一点?
我正在执行脚本bash -x myscript.sh以查看它是否出现任何错误,但没有。